Comment by benterix
11 hours ago
If you decide to use UDP, do you ignore the transmission errors or write the handling layer on your own?
11 hours ago
If you decide to use UDP, do you ignore the transmission errors or write the handling layer on your own?
I handle it in different ways by topic.
For topics which are sending the state of something, a gap naturally self-recovers so long as you keep sending the state even if it doesn't change.
For message buses that need to be incremental, you need to have a separate snapshot system to recover state. That's usually pretty rare outside of things like order books (I work in low-latency trading).
For requests/response, I find it's better to tell the requester their request was not received rather than transparently re-send it, since by the time you re-send it it might be stale already. So what I do at the protocol level is just have ack logic, but no retransmit. Also it's datagram-oriented rather than byte-oriented, so overall much nicer guarantees than TCP (so long as all your messages fit in one UDP payload).