5 ms·
> So, in essence, you can never have "I will get this exactly once", and at best you can only ever have "I will have a plan for what to do if I get this more th
by chacham15 4y ago
> So, in essence, you can never have "I will get this exactly once", and at best you can only ever have "I will have a plan for what to do if I get this more than once".
I dont understand this at all. TCP has exactly once message delivery that the application layer is completely unaware of...
- majormajor 4y agoTCP isn't guaranteed delivery if the receiver crashes; that's what queues and similar persistent systems are introduced to solve, but at-least-once is what you normally get outside of specialized two-phase (write then commit later) idempotent (so writing a second time is OK if the first one was never committed since your producer died and restarted from an earlier position, say) systems, AFAIK.
- dagss 4y agoIn theory you could simply wait with TCP ACK until you had committed to your ACID database and then TCP would in fact be exactly once. I guess hardly anyone does this though.