when I asked people to explain how UDP works I got a lot of answers to the effect of "it's spray and pray"

but I'm having trouble thinking of examples of UDP-based protocols that actually work in a "spray and pray" way —

* DNS is "send 1 packet, retry if you don't get a reply”
* QUIC is a sophisticated system for streaming data over UDP
* I'd guess that video protocols correct for packet loss
* maybe statsd is a "spray and pray” system?

(please do not reply to this explaining how UDP works)

@b0rk what does "spray and pray" even mean? You won't get things working by praying, instead you have to implement retries or some other strategy to handle packet losses and reordering.
Maybe it makes sense to describe how you implement UDP (if you are writing a network stack, which few people do), but not how you use UDP to implement some networking things?
@pulkomandy @b0rk "you have to implement retries" No, it depends on the application. (If you need to retry, then may be think twice before using UDP.)
@bortzmeyer @b0rk I said "retry or some other strategy", yes? This can be careful timeouts, sending another (updated?) message later, or just thinking about it and deciding that it's not important if the message is lost (but, in that case, do you really need to send it?)
@pulkomandy @b0rk " just thinking about it and deciding that it's not important if the message is lost" This is exactly how real-time video works: you don't retransmit lost pixels, the show must go on.