Tag Archives: Event-Driven Architecture

Part 2: Sagas, Fan-In, and Correlation: Solving the Hard Problems of Eventual Consistency in EDA

Choosing event-driven architecture means choosing eventual consistency. The only question is how well you manage it. When payment succeeds but inventory reservation fails, do you refund automatically or let a customer stare at a half-completed order? This guide covers Saga compensation patterns, the callback topic debate (and why it’s really async RPC over event infrastructure), fan-out vs fan-in complexity, and three concrete approaches to multi-topic correlation — with production code in Python, Java, and AWS.

Before You Adopt Event-Driven Architecture: Prerequisites, Red Flags, and Partition Strategy

Most teams adopting event-driven architecture never stop to understand what it actually involves. Before committing to the operational overhead that transforms a three-component system into fifteen, verify you actually have the problems EDA exists to solve. This guide provides a decision framework, prerequisites checklist, and a deep dive into partition strategy — the most consequential design decision you’ll make in EDA.

Amazon SNS: Part 1 – Introduction for Developers and Architects

Dive into the core functionalities of Amazon SNS (Simple Notification Service), a cornerstone for enabling real-time and event-driven architectures in cloud computing. Understand how SNS facilitates seamless communication between applications through its pub/sub messaging model, allowing for broad-scale message distribution to various subscribers. Explore the service’s key features, including multi-protocol support, high throughput, message filtering, and integration within the AWS ecosystem, and learn how it ensures secure, scalable, and efficient messaging across diverse applications.

Overview of Communication Patterns: Event-Driven, Message-Driven and Request-Driven

Dive deep into the intricate world of communication patterns in system architecture. Explore the strengths and trade-offs of request-driven, message-driven, and event-driven models, and how they shape the interaction, scalability, and resilience of modern applications. Unravel the complexities and operational dynamics that can make or break your system’s architecture.

What is event driven? The five types of event-driven architecture

Event-driven architecture is an approach to software design that relies on events to trigger actions. There are five primary patterns of event-driven architecture, including event-notification, event-carried state transfer, CQRS (Command Query Responsibility Segregation), event-sourcing, and event-streaming.
In the article I will describe what they are and the difference between Event-Streaming and Event-Sourcing

How to ensure events are processed in order when retrying events out of sequence (when using event platforms like Apache Kafka)

In the post, How to handle retry messages and failures when using event streaming platforms like Apache Kafka, I walked through how to retry events when using Apache Kafka.  Now in this post, I will discuss an approach you can implement to ensure processors process events in order even when you’ve implemented a retry solution.  YouTube video After… Read More »