Watercooler; A chat app with no websockets needed

Sure. My point was that with this combination, bidirectional communication is possible. Both the client and server can manage state so anything that is possible with websockets is also possible without. The architecture of the sever could certainly make implementing this easier or harder to do.

Personally, if I cared about some stateful communication I would move that state out of any request processes which would then interact with both SSE and POST/PUT handlers. Then you can use Last-Event-Id to re-establish a connection. or not depending on choice of at-least-once vs at-most-once.

If that’s the goal then any other option will look like more work than just using the websocket handler.