Lukas' Notes

Definition

Event-based Architecture ( Distributed System)

An event-based architecture organises components around publishing events and reacting to events delivered through an event bus, rather than directly invoking a particular recipient. An event is a message describing an occurrence and may carry associated data.

Components subscribe to events of interest. Let be true when ‘s subscription matches event . The intended recipients are

The bus routes events according to these subscriptions; the publisher need not identify the recipients. A component may both publish and receive events.

Selected publications and deliveries are shown. A and B subscribe to ; B also publishes . Its downward arrow is a separate publication, not a response to .

Decoupling and Delivery

Publishers depend on an event contract rather than subscriber identities. Subscribers can be added or replaced without changing publishers if that contract is preserved.

Event handling is often asynchronous. Ordering, persistence, duplicate delivery and recovery depend on the event service; subscription matching alone does not guarantee successful delivery.

The event bus is a logical communication facility, not necessarily one server. Its implementation may be distributed across several computers.