| ▲ | fleahunter 3 hours ago | |||||||||||||||||||||||||||||||||||||||||||||||||
The part people underestimate is how much organizational discipline event sourcing quietly demands. Technically, sure, you can bolt an append-only table on Postgres and call it a day. But the hard part is living with the consequences of “events are facts” when your product manager changes their mind, your domain model evolves, or a third team starts depending on your event stream as an integration API. Events stop being an internal persistence detail and become a public contract. Now versioning, schema evolution, and “we’ll just rename this field” turn into distributed change management problems. Your infra is suddenly the easy bit compared to designing events that are stable, expressive, and not leaking implementation details. And once people discover they can rebuild projections “any time”, they start treating projections as disposable, which works right up until you have a 500M event stream and a 6 hour replay window that makes every migration a scheduled outage. Event sourcing shines when the business actually cares about history (finance, compliance, complex workflows) and you’re willing to invest in modeling and ops. Used as a generic CRUD replacement it’s a complexity bomb with a 12-18 month fuse. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | mrkeen 2 hours ago | parent | next [-] | |||||||||||||||||||||||||||||||||||||||||||||||||
> Event sourcing shines when the business actually cares about history (finance, compliance, complex workflows) Flip it on its head. Would those domains be better off with simple crud? Did the accountants make a wrong turn when they switched from simple-balances to single-entry ledgers? | ||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | javier2 an hour ago | parent | prev | next [-] | |||||||||||||||||||||||||||||||||||||||||||||||||
This. This is also a reason why its so impressive google docs/sheets has managed to stay largely the same for so long | ||||||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | mexicocitinluez 2 hours ago | parent | prev [-] | |||||||||||||||||||||||||||||||||||||||||||||||||
> or a third team starts depending on your event stream as an integration API. > vents stop being an internal persistence detail and become a public contract. You can't blame event sourcing for people not doing it correctly, though. The events aren't a public contract and shouldn't be treated as such. Treating them that way will result in issues. > Used as a generic CRUD replacement it’s a complexity bomb with a 12-18 month fuse. This is true, but all you're really saying it "Use the right tool for the right job". | ||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||