Skip to content

2022

  1. Encapsulating interactions with the outside world in your domain model.

    In my ever-lasting battle against anemic domain models I've developed a preference on how to integrate with the external concerns. In this post I'd like to show an alternative, a strategy on how to keep encapsulating behaviour wile interacting with the outside world.

    4 min readSoftware Design

  2. Use a message envelope

    Event-driven architectures have various styles of communication. In my previous post I described a couple of event types you may see in these kinds of architectures.

    7 min readEvent-Driven Architectureevent sourcing

  3. The different types of events in event-driven systems

    Event-driven systems come in all sorts of shapes and sizes. The obvious commonality is; they all use events to communicate information. These events come in many shapes and sizes, and determining what goes into an event has an immense impact on the design of your system.

    6 min readSoftware DesignEvent-Driven Architecture

2021

  1. Where does my validation live?

    This is a question I've received over and over again, a question that does not have a single answer. Sometimes when I explain how I approach this I get surprised reactions, so I figure I might as well share it in a blog post and see what other people think.

    8 min readvalidationSoftware Design

  2. Back the func off, this is my abstraction!

    Integrating services over API's exposes your application to a range of possible failures. At scale, any network interaction can and will fail. Implementing a retry mechanism is a common approach to increase fault tolerance.

    8 min readPHPSoftware Design