Earde
/c/drift / § Protocol design
§ Protocol design
Discuss WebSocket transport semantics, framing, reconnection, flow control, and compatibility between Drift and the libraries built on it.
⇄ Shared from Rivet
Rivet currently uses a bounded per-subscriber queue before handing messages to Drift. When a client stops reading, we need a clear contract between the channel layer and the transport layer. The main options are: * block publishers until the subscriber catches up; * drop messages when the queue is full; * disconnect the slow subscriber with an explicit reason. My preference is a bounded queue followed by disconnection, because silently dropping messages would break Rivet’s delivery semantics. What guarantees can Drift provide when WebSocket writes remain backpressured?
by u/tolwiz[MOD][ADMIN]6 hr ago💬 2
Page 1