Earlier quoted context omitted.
Any modern DB with a WAL (write ahead log) is an immutable event system, where the events are the DB primitives (insert, update, delete...). When you construct your own event system you are constructing a DB with your own primitives (deposit, withdraw, transfer, apply monthly interest...). You have to figure out your transaction semantics. For example, how to reject invalid events.
> Any modern DB with a WAL (write ahead log) is an immutable event system, where the events are the DB primitives (insert, update, delete...). Agreed, I just wish apart from WAL they also had versioning as first class and their update api required clients to pass the version they have "last seen" to prevent inconsistencies.
Event Sourcing, CQRS and Micro Services: Real FinTech Example
31–40 of 70 posts
Re: Event Sourcing, CQRS and Micro Services: Real FinTech Example
#32Re: Event Sourcing, CQRS and Micro Services: Real FinTech Example
#33This made me do a double-take. Surely you would never do this, right? It seems to be directly counter to the idea of being able to audit changes: “Event replay: if we want to adjust a past event, for example because it was incorrect, we can just do that and rebuild the app state.”
Re: Event Sourcing, CQRS and Micro Services: Real FinTech Example
#34Traumatic flashbacks to 2017. Glad we moved on from this nonsense. Still dealing with the wreckage, though. Event sourcing is a terrible idea that may be useful for some incredibly niche scenario.
Re: Event Sourcing, CQRS and Micro Services: Real FinTech Example
#35It kinda sounds like all you needed was a ledger, otherwise didn’t get why would you use CQRS.
Re: Event Sourcing, CQRS and Micro Services: Real FinTech Example
#36Earlier quoted context omitted.
Do you mean inter-system? Intra-system would mean on the same db, so a simple transaction would do. For inter-system consistency, you’d probably need a reconciliation mechanism or some kind of 2 phase commit
I mean a bank account sending money to another bank account. That would be 2 events(one withdraw and one deposit)? But if I'm downstream consumer consuming the event log and computing the state from that, if for some reasons I receives only first event the state computed would be invalid and not represent the real state of accounts?
Re: Event Sourcing, CQRS and Micro Services: Real FinTech Example
#37Re: Event Sourcing, CQRS and Micro Services: Real FinTech Example
#38Traumatic flashbacks to 2017. Glad we moved on from this nonsense. Still dealing with the wreckage, though. Event sourcing is a terrible idea that may be useful for some incredibly niche scenario.
Re: Event Sourcing, CQRS and Micro Services: Real FinTech Example
#39Earlier quoted context omitted.
Not speaking about their case, but I think some cases a "versioned mutable data store" with a event log that lists updates/inserts makes more sense than an "immutable event log" one like kafka. Consider the update_order_item_quantity event in a classic event sourced systems. It's not possible to guarantee that two waiters dispatching two such events at same time when current quantity is 1 would not cause the quantity…
Any modern DB with a WAL (write ahead log) is an immutable event system, where the events are the DB primitives (insert, update, delete...). When you construct your own event system you are constructing a DB with your own primitives (deposit, withdraw, transfer, apply monthly interest...). You have to figure out your transaction semantics. For example, how to reject invalid events.
And DBs are not really CQRS because the events are artificial and don't have business data that people are interested in keeping.
Re: Event Sourcing, CQRS and Micro Services: Real FinTech Example
#40The answer to Event Sourcing and CQRS is no.