3 ms·
I don't blame you for being soured on it—sounds like there are a lot of antipatterns in play there! > including places where it's not really useful like CRUD.
by karmajunkie 9y ago
I don't blame you for being soured on it—sounds like there are a lot of antipatterns in play there!
> including places where it's not really useful like CRUD.
Probably the most common mistake made by architects doing it for the first time.
> You can't just query a database. You have to build your views based on playing back your events.
Its pretty common to have projections that build database tables so you can do exactly that. It sounds more like the original architects violated (or had poor delineation) of service boundaries, which just creates a tightly coupled set of microservices, which is worse than the monolithic architecture it seeks to replace.
> In order to fix the data, you need to replay all the events - and there are millions of them. Nothing ever gets deleted because a 'delete' is a new event.
Its also common to archive streams periodically and "declare bankruptcy" with an initial state setting event, proceeding forward from there. Snapshotting is also a thing.
You might find this helpful in dealing with some of those issues: https://leanpub.com/esversioning/read#leanpub-auto-status https://leanpub.com/esversioning/read#leanpub-auto-status