Is Cross-Service Consistency Guaranteed—or Just Hoped For?¶
Type: Structure, DeepDive Category: Async
Audience: Engineers working on service integration, microservice orchestration, or eventual consistency design
🔍 What This Perspective Covers¶
When one service updates state—
how do you ensure the others agree?
- Event published ≠event received
- Downstream updates might arrive late, or not at all
- State might “look” right, but be structurally divergent
⚠️ Failure Scenarios¶
- Event loss: system A updates, B never sees the change
- Out-of-order delivery → B overwrites A’s latest data
- Conflict resolution policies undefined → inconsistent recovery
- No alerting for downstream update drift
âś… Design for Real Consistency¶
- Use event versioning and schema contracts
- Track causal links: what triggered what?
- Implement reconciliation jobs for long-term consistency
- Prefer eventual over “pretend real-time” sync
- Monitor consistency lag across services—not just delivery
⚠️ Key Shift¶
Don’t assume the system is consistent.
Design it to notice when it isn’t.
âť“ FAQ¶
-
Q: But we use event delivery guarantees. Isn’t that enough?
A: Guarantees cover delivery, not correctness. -
Q: Can’t we just trust retries?
A: Not without idempotence and visibility.