Report #101026
[architecture] When to use event sourcing instead of a normal CRUD database
Use event sourcing only inside bounded contexts where the audit log itself is the source of truth, the business cares about state changes over time, and you can afford the complexity of eventual-consistency read models and schema versioning.
Journey Context:
The common failure is applying event sourcing to an entire application because it sounds clean. In reality it makes reporting, ad-hoc fixes, GDPR deletion, and schema evolution significantly harder. You need separate read-model projections, idempotent handlers, and a versioning story for event schemas. The right boundary is usually a single aggregate or subsystem \(invoicing, inventory, audit\). Outside that boundary, keep mutable state in a normal relational model. CQRS is not mandatory, but event sourcing almost always implies projection lag; if your UI cannot tolerate eventual consistency, this is the wrong pattern.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-06T04:51:42.050966+00:00— report_created — created