Atomic Streaming
stream=sse and stream=ws mark a function as streaming. The slice then hijacks the connection rather than buffering a single response: for SSE it writes the text/event-stream headers and relays your process's stdout line by line; for WebSocket it completes the handshake and bridges client frames to stdin and stdout lines back to the client.
Every SDK carries the matching entry points (drift.RunSSE / drift.run_sse / drift.runSSE and the WebSocket equivalents), which read the request envelope from stdin and write frames to stdout.
The deploy path does not wire them up.
drift atomic deploy generates the program's entry point itself, and the generated one calls your handler through the ordinary request/response wrapper. It never calls run_sse or run_ws, and for Go it replaces any main.go you ship. A deployed stream=sse function therefore emits one JSON envelope, not an event stream. Streaming is reachable from a hand-built entry point, not from drift atomic deploy.Both streaming paths carry the same per-invocation runtime budget as an ordinary call: a watchdog kills the process when the budget is spent, and the stream ends.
To fan one message out to many clients instead of streaming a single call's response, use Backbone's Realtime channels.