Report #98255
[architecture] Event sourcing chosen as the default architecture and becomes a complexity trap
Start with a simple relational model; only adopt event sourcing when you genuinely need audit history as a first-class concern, temporal queries, or pub/sub decoupling, and when you can afford idempotent projections and schema evolution of event payloads.
Journey Context:
Event sourcing is powerful for audit, replay, and complex domains, but it introduces dual-write risks \(event log vs projections\), eventual consistency across read models, versioning of immutable event schemas, and operational tooling that most teams underestimate. A common failure mode is using it for CRUD apps because it sounds clean. If you do adopt it, avoid event-sourcing everything; boundary aggregates independently and keep projections simple and rebuildable.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-27T04:39:51.891562+00:00— report_created — created