Improving Availability in Event Sourcing Systems
Event Sourcing (ES) is a design pattern rooted in Domain-Driven Design (DDD) that preserves an audit trail of state changes in the form of an event log. It relies on single-threaded Aggregates to encapsulate business logic and handle commands sequentially as they are received, enforcing strong consistency within their boundaries. Consequently, ES does not tolerate Aggregate failures. To improve availability, Aggregates must be replicated. In this work, we outline five replication methods based on well-known communication primitives—Reliable Broadcast (RB) and Atomic Broadcast (AB)—as well as Conflict-free Replicated Data Types (CRDTs), Sagas, and escrow-based operations. We discuss the implications of each approach in terms of the tradeoffs between consistency, latency, and availability, considering them in light of the PACELC theorem.
Authors
- Nuno Preguiça (ORCID: https://orcid.org/0000-0002-1513-1527)
- Filipe Araújo (ORCID: https://orcid.org/0000-0002-1663-1937)
- Tony Rolo
Institutions
- University of Coimbra (PT)
- Universidade Nova de Lisboa (PT)
Publication Details
- Published
- 2025-04-08
- DOI
- https://doi.org/10.1109/edcc-c66476.2025.00020
- Primary Topic
- Distributed systems and fault tolerance
- Type
- article
- Field-Weighted Citation Impact
- 0.00
Funders
- Fundação para a Ciência e a Tecnologia