Category Archives: Event Driven Architecture

Part 1: Strategic Decision-Making: Understanding AWS Suite Of Messaging/Event Services

Understanding the diverse landscape of AWS Messaging Services is essential for architecting robust, scalable, and efficient cloud solutions. AWS offers a suite of messaging services, each designed with unique features and collaboration patterns to cater to specific architectural needs. From SQS’s reliable message queuing and SNS’s dynamic pub/sub messaging to Kinesis’s real-time data streaming and MSK’s high-throughput message handling, the choice of service can profoundly impact your system’s performance, reliability, and scalability. Whether it’s decoupling components with SQS, broadcasting notifications with SNS, processing vast data streams with Kinesis, or handling high-volume events with MSK, understanding these services’ capabilities and use cases is crucial for making informed and strategic architectural decisions.

Centralised Orchestration vs Decentralised Choreography in Event-Driven Serverless Systems

In this article, I will share my thoughts on using centralised versus decentralised orchestration when building event-driven serverless systems. I have over 15 years of experience in designing and developing distributed event-driven systems. I have spent years migrating from monolithic systems to microservices and now to serverless-powered systems. Event-driven architecture can help build highly loosely coupled, fault-tolerant, scalable,… Read More »

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

Can you combine request-driven and event-driven architecture together?

The answer is yes. You can combine the two. Let’s look at two possible solutions. FYI, I am basing the solution on a question I received on one of my videos https://youtu.be/U-U3bpljZd0. The question was: Possible Solution Key architecture design decisions for my approach Before we go through the two approaches, let me share my architectural design decisions.… Read More »

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 »