3 ms·
Could you elaborate how you solve transaction, double writes , deadlocks. I mean the consumers do still process messages in parallel right? Or do you force a se
by holoduke 5y ago
Could you elaborate how you solve transaction, double writes , deadlocks.
I mean the consumers do still process messages in parallel right? Or do you force a serial pipeline to avoid handling messages at the same time?
I thought that EV is more about creating entire separate entities/codebase which have zero dependencies.
- randolorian 5y agoA proper event storage solution will have optimistic concurrency built in.
- lmm 5y ago> I mean the consumers do still process messages in parallel right? Or do you force a serial pipeline to avoid handling messages at the same time? Generally I follow the Kafka approach of, essentially, shards that are each processed serially. So unrelated messages may be processed out of order, but related messages will be processed serially. If you don't have a good enough key, or you need to join two streams, then you have to use CRDTs or equivalent. This can be hard, and you will have bugs, but since you retain the original events, you can always fix things up and recover the correct data, whereas when you get an SQL datastore into an inconsistent state you're generally SOL.