Event-driven architecture

Patterns and trade-offs for event-driven systems: notification and stateful events, event sourcing, integration, and what consistency means when everything is asynchronous. Written in 2017; read in order.

  1. Notification Event Pattern

    There are many event patterns or styles in event driven architectures. One of the significant advantages of the notification event pattern is can be introduced into existing systems quite simply to provide a more loosely coupled design.

  2. Event-Carried State Transfer Pattern

    In contrast to the notification pattern the Event-carried state transfer discourages calls to the publishing service by containing all the required data in the event payload. This decoupling leads to a very clean architecture but not without significant costs.

  3. Event Sourcing

    Event Sourcing is a fascinating design pattern with some real advantages over maintaining single states within systems. But there is a darker side that requires careful consideration.

  4. Consistency

    Consistency - the absence of contradiction is a challenge in any application. Event driven asynchronous distributed systems turn up the dial of complexity. What does consistency mean?

  5. Integrating Event Driven systems

    It is very rare for an application or system to exist in isolation. Systems need to be integrated to deliver business value.

  6. Measuring Consistency

    Consistency Measurement - understanding key operational metrics of a distributed event driven system

  7. Compensating Actions

    Consistency - the absence of contradiction is a challenge in any application. Event driven asynchronous distributed systems turn up the dial of complexity. What does consistency mean?