4 ms·
You can absolutely abstract 99% of it out. But not 100%. At some point, a counter move on the delivery has to be stored... -somewhere-. And sure you -can- mak
by to11mtm 2y ago
You can absolutely abstract 99% of it out.
But not 100%. At some point, a counter move on the delivery has to be stored... -somewhere-.
And sure you -can- make it very very close to EOD and for some subsets you can totally do EOD, but you are, realistically, better off with ALOD+Ack once it makes its way into a system. There's always that 'moving the counter' problem.
The upshot is, things tend to get faster, easier to code review, and simpler to test.
Pragmatically speaking, I've found devs are better able to handle ALOD+ACK than "Exactly once but because reality you might get a message that's doubled because you couldn't persist the ack".
And I'll note I'm possibly extra pedantic about this because I've had a month and a half of dealing with the fallout of people trusting low-code salesmen alongside gartner reports leading to a 'you people thought this was exactly once and it was not' sort of problem.
- lisper 2y ago> But not 100%. Why not? > At some point, a counter move on the delivery has to be stored... -somewhere-. What is a "counter move on the delivery"?
- sethammons 2y agoRead the two general's problem. It is a mathematical impossibility. The counter is the delivery counter. Delivery, delivery + 1
- lisper 2y agoWhat makes you think the 2GP is relevant here? The 2GP has to do with coordination and consensus, not exactly-once delivery.
- sethammons 2y agoYou are correct