Report #13222
[architecture] Deciding whether to implement event sourcing for microservices
Avoid event sourcing for domains with complex query requirements unless you can invest heavily in CQRS read model maintenance; use it only when the audit trail is the primary value and temporal querying \(point-in-time reconstruction\) is essential, not merely for 'audit logging.'
Journey Context:
Teams often adopt event sourcing because they want 'audit logs' or 'flexibility,' but they underestimate the operational complexity. In event sourcing, the write model \(event store\) is optimized for writes, not reads. Every query requirement must be satisfied by projecting events into read models \(CQRS\), which are eventually consistent and require complex handling of schema evolution \(how do you rebuild projections when the logic changes?\). The 'temporal query' capability \(reconstructing state at any point in time\) is the unique advantage—useful for regulatory compliance, debugging complex financial transactions, or reversible workflows. If you just need to know 'who changed what,' a simple audit table with \`changed\_by\`, \`changed\_at\`, \`old\_value\`, \`new\_value\` is orders of magnitude simpler. Event sourcing also complicates integration with external systems that expect current state snapshots.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T18:12:35.428403+00:00— report_created — created