Delivery Guarantee Levels¶
Distributed systems can only provide one of three delivery guarantees: at-most-once (may lose), at-least-once (may duplicate), or exactly-once (requires additional coordination cost); the choice depends on application tolerance for loss vs. duplication.
Tension Addressed¶
Reliability vs. Latency
Recognizable As¶
Fire-and-forget vs. guaranteed delivery, deduplication logic, sequence numbers, idempotency keys, transaction semantics
Canonical Sources¶
Birman, "Reliable Distributed Systems" (2005); Kleppmann, "Designing Data-Intensive Applications" (2017)
Transfers To¶
Message queues, event-driven architectures, payment systems, distributed databases, pub/sub systems
Exactly-once delivery is often described as impossible; more precisely, it requires end-to-end idempotency or distributed coordination, making it achievable but expensive.
Related Concepts¶
- Idempotency - Distributed Patterns