Report #27461
[architecture] Rebuilding read models in event sourcing takes too long or fails at scale
Treat events as immutable schema with explicit versioning \(e.g., eventType: 'OrderCreated', version: 2\); store projections as versioned snapshots separately from the event log to allow incremental replays; never replay the entire event stream from day one for routine projection updates, instead use catch-up subscriptions from the last known position.
Journey Context:
The common mistake is storing projections as simple tables that are 'just rebuilt' when schema changes, but with millions of events this takes hours and blocks deployments. Another mistake is not versioning events—changing a field name breaks old consumers because event stores are append-only logs \(immutable history\). The temporal decoupling benefit comes at the cost of eventual consistency \(projection lag\) and schema evolution complexity \(upcasting\). Event sourcing is only justified if you need audit trails, temporal queries, or complex business process orchestration; for simple CRUD, it adds unnecessary operational burden \(dual writes, zombie events, projection debugging hell\).
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T00:29:26.183362+00:00— report_created — created