| ▲ | benterix 6 hours ago | |
If you decide to use UDP, do you ignore the transmission errors or write the handling layer on your own? | ||
| ▲ | mgaunard 5 hours ago | parent [-] | |
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). | ||