Robots Atlas>ROBOTS ATLAS
Orkiestracja

EDA

2003ActivePublished: 11 June 2026Updated: 11 June 2026Published
Key innovation
Inversion of control flow — components communicate asynchronously by emitting and consuming events instead of synchronous RPC calls, decoupling producers from consumers in time and space.
Category
Orkiestracja
Abstraction level
Paradigm
Operation level
OrchestrationApplicationTooling
Use cases
Asynchronous LLM inference pipelines (GPU job queues)Streaming token generation and result aggregationMulti-agent system orchestration via event busReactive AI agents listening to state changesReal-time RAG: document indexing triggered by eventsMicroservices and distributed systems (e-commerce, fintech)Streaming telemetry and analytics (Kafka Streams, Flink)Event sourcing and CQRS in domain-rich applications

How it works

An event producer publishes an event (typically an immutable record with payload and metadata) to a named channel (topic, queue, stream) on a broker. The broker durably stores the event and delivers it to registered consumers under one of two strategies: (1) pub/sub — every subscriber receives a copy of the event; (2) competing consumers — the event goes to exactly one consumer in a group, enabling load balancing. Consumers process events independently and may emit further events, forming a reactive flow graph. Related patterns include event notification (signal of change), event-carried state transfer (event carries full state), event sourcing (event log as source of truth), and CQRS (separating writes from reads).

Problem solved

Synchronous point-to-point RPC calls create tight temporal and topological coupling between services: each consumer must be available when the call is made, and the producer must know its consumers. Scalability, fault tolerance, and system evolution suffer. EDA removes these dependencies by introducing a mediator (event broker) and asynchronous communication.

Components

Event ProducerSource of events

Component emitting events in response to a state change or user action.

Official

Event BrokerCommunication mediator

Mediator that durably stores and routes events (Kafka, RabbitMQ, NATS, Pulsar, EventBridge).

Apache KafkaDistributed log-based broker, high-throughput, durable.
RabbitMQAMQP broker with rich routing, queue-based patterns.
NATSLightweight pub/sub broker, low latency.
Apache PulsarMulti-tenant, geo-replicated, log + queue in one.

Official

Event ConsumerEvent receiver

Component subscribing to channels and reacting to events.

Official

Event Channel / TopicLogical stream

Logical name of an event stream that producers publish to and consumers subscribe to.

Event SchemaData contract

Contract describing the event structure (Avro, Protobuf, JSON Schema, CloudEvents).

Official

Implementation

Implementation pitfalls
Lack of consumer idempotencyCritical

At-least-once delivery means event redelivery. Consumers must handle duplicates without side effects.

Fix:Use idempotency keys, transactions, or the outbox pattern.
Hard to debug event flowHigh

Asynchronous, distributed nature makes the causation chain hard to trace.

Fix:Distributed tracing (OpenTelemetry), correlation IDs in every event.
Unmanaged schema evolutionHigh

Changing an event schema can break older consumers.

Fix:Schema Registry (Confluent) with compatibility policies (backward/forward).
Eventual consistency misaligned with domainMedium

Some operations require strong consistency; EDA introduces propagation delay.

Fix:Hybrid: synchronous API for critical operations, EDA for the rest.
Poison messages blocking a partitionHigh

An event that crashes the consumer blocks processing of subsequent events in the partition.

Fix:Dead-letter queue (DLQ) and retry with backoff.

Evolution

1987
Publish-subscribe pattern

Formalization of the pub/sub pattern in distributed systems (ISIS Toolkit, Cornell).

2003
Enterprise Integration Patterns
Inflection point

Hohpe and Woolf publish the catalog of message-based integration patterns — the enterprise EDA foundation.

2011
Apache Kafka open-sourced
Inflection point

LinkedIn open-sources Kafka — a log-based broker defining modern EDA.

2014
Reactive Manifesto

Manifesto defining reactive systems (responsive, resilient, elastic, message-driven) — popularizing message-driven as a scalability foundation.

2018
CloudEvents specification (CNCF)

CNCF standardizes a vendor-neutral event description format.

2023
EDA in LLM agent systems

Agent frameworks (LangGraph, AutoGen, CrewAI) adopt event-driven orchestration for multi-agent workflows and streaming inference.

Hyperparameters (configurable axes)

Delivery semanticsCritical

At-most-once / at-least-once / exactly-once. Affects consumer idempotency and operational cost.

at-least-once
exactly-once
Ordering guaranteeHigh

Global ordering vs. per-partition vs. none. Trade-off between ordering and parallelism.

per-partition (Kafka)
none
Retention policyHigh

Time/size retention of events. Log-based brokers (Kafka) retain long-term, queue-based delete on ACK.

7d
unlimited (compacted)
Partitioning strategyHigh

Partition key determines load balancing and ordering.

Schema evolutionMedium

Compatibility strategy (backward / forward / full) for event schema evolution.

Execution paradigm

Primary mode
Conditional

Execution is triggered by event arrival (reactive), not by a schedule or synchronous call.

Activation pattern
Input dependent
Routing mechanism

The broker routes events to consumers based on topic name, partition keys, filters, or payload content.

Parallelism

Parallelism level
Fully parallel

Consumers scale horizontally via competing consumers / consumer groups. Stream partitioning (e.g. Kafka partitions) constrains parallelism within a partition key.

Scope
InferenceAcross devices

Hardware requirements

Primary

EDA is a hardware-agnostic architectural pattern — runs on CPU, cloud, and edge.