Jonatan Matajonmatum.com
conceptsnotesexperimentsessays
© 2026 Jonatan Mata. All rights reserved.v2.1.1
Concepts

Event-Driven Architecture

Architectural pattern where components communicate through asynchronous events, enabling decoupled, scalable, and reactive systems.

seed#event-driven#architecture#async#decoupling#events#messaging

What it is

Event-driven architecture is a pattern where components produce and consume events asynchronously. An event represents something that happened — an order created, a file uploaded, a user registered. Producers don't know who consumes their events; consumers don't know who produces them.

Components

  • Event: immutable record of something that happened
  • Producer: component that emits events
  • Consumer: component that reacts to events
  • Broker/Bus: infrastructure that routes events

Patterns

  • Event notification: notify that something happened (without complete data)
  • Event-carried state transfer: the event contains all necessary data
  • Event sourcing: state is derived from the sequence of events
  • CQRS: separate reads from writes using events

Broker comparison

BrokerModelOrderingRetentionUse case
AWS SQSQueue (point-to-point)Optional FIFO14 days maxSimple service decoupling
AWS SNSPub/sub (fan-out)Not guaranteedNo retentionNotifications to multiple subscribers
AWS EventBridgeEvent busPer partition24h replayContent-based routing, SaaS integration
Apache KafkaDistributed logPer partitionConfigurableHigh-volume streaming, event sourcing
RabbitMQQueue with exchangesPer queueConfigurableComplex routing, multiple protocols

Benefits

  • Decoupling: producers and consumers evolve independently
  • Scalability: add consumers without modifying producers
  • Resilience: isolated failures, automatic retries
  • Auditability: complete event history

Challenges

  • Eventual consistency (not immediate)
  • More complex debugging (distributed flows)
  • Event ordering
  • Consumer idempotency

Why it matters

Event-driven architectures decouple services in time and space. A service publishes an event without knowing who consumes it, enabling independent scaling, modification, and replacement of components. It is the pattern that enables truly modular systems.

References

  • What do you mean by Event-Driven? — Martin Fowler, 2017.
  • AsyncAPI — AsyncAPI Initiative, 2024. Specification for asynchronous and event-driven APIs.
  • EventBridge Documentation — AWS, 2024. Serverless event bus service.

Related content

  • Serverless

    Cloud computing model where the provider manages infrastructure automatically, allowing code execution without provisioning or managing servers, paying only for actual usage.

  • AWS EventBridge

    AWS serverless event bus connecting applications using events, enabling decoupled event-driven architectures with rule-based routing.

  • CQRS

    Pattern separating read and write operations into distinct models, optimizing each independently for performance and scalability.

  • Saga Pattern

    Pattern for managing distributed transactions in microservices through a sequence of local transactions with compensating actions to handle failures.

  • Microservices

    Architectural style structuring an application as a collection of small, independent, deployable services, each with its own business logic and data.

  • Event Sourcing

    Pattern where application state is derived from an immutable sequence of events, providing complete audit trail and the ability to reconstruct state at any point in time.

  • Backend for Frontend

    Architectural pattern where each client type has its own dedicated backend adapting microservice APIs to that client's specific needs.

  • AWS Step Functions

    AWS serverless orchestration service that coordinates multiple services into visual workflows using Amazon States Language (ASL), with built-in error handling, retries, and parallel execution.

  • AWS SQS

    AWS fully managed message queue service that decouples distributed application components, guaranteeing message delivery with unlimited scalability.

  • AWS SNS

    AWS pub/sub messaging service that distributes messages to multiple subscribers simultaneously, enabling fan-out patterns and notifications at scale.

  • AWS Lambda

    AWS serverless compute service that runs code in response to events without provisioning or managing servers, automatically scaling from zero to thousands of concurrent executions.

  • AWS DynamoDB

    AWS serverless NoSQL database with single-digit millisecond latency at any scale, ideal for applications requiring high performance and automatic scalability.

  • AI Orchestration

    Patterns and frameworks for coordinating multiple AI models, tools, and data sources in production pipelines, managing flow between components, memory, and error recovery.

Concepts