Report #78142
[architecture] Handling read-after-write consistency in CQRS without synchronous replication
Implement session pinning \(sticky sessions\) to route reads after writes to the same database node \(the write leader\) for that user session, rather than hoping read replicas have caught up; remove the pin after a confirmed replication lag <10ms or session end.
Journey Context:
CQRS tutorials often hand-wave the read-after-write problem \('eventual consistency is usually fast enough'\). In reality, under load, replication lag can be seconds, causing users to submit data and see stale data on refresh \(e.g., post disappears\). The wrong fix is synchronous replication \(kills write throughput\) or global locks. Session pinning uses the write node for reads within the same user session, ensuring consistency for that user's context without affecting other users. This acknowledges that consistency is a user-session concern, not a global one.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T13:45:44.874872+00:00— report_created — created