Server-sent events (implemented in Opera by 2006) is older than Websocket (first proposed in 2008), but is less well supported by browsers. They have pretty much the same properties w/r/t scaling, but SSE is a slightly higher level spec, which could make your app either easier or harder to implement, depending on your use case.
Neither is any less “architecturally sound” (from the perspective of your comment) than TCP itself.
> Where multiple servers or threads will have to send nearby notifications back to a single process to have that information sent down a specific connection. This seems like it may become a bottleneck.
Every messaging platform has potential bottlenecks. But there’s been quite a bit of work in the last 30-40 years on scaling such systems. What kind of back-end architecture you want to use depends a lot on your intended use. I recommend playing with ZeroMQ if you want to make your own messaging platform, to get a feeling for how it should scale. A “safer” solution of course is to just pull some existing scalable message platform off the shelf.
Neither is any less “architecturally sound” (from the perspective of your comment) than TCP itself.
> Where multiple servers or threads will have to send nearby notifications back to a single process to have that information sent down a specific connection. This seems like it may become a bottleneck.
Every messaging platform has potential bottlenecks. But there’s been quite a bit of work in the last 30-40 years on scaling such systems. What kind of back-end architecture you want to use depends a lot on your intended use. I recommend playing with ZeroMQ if you want to make your own messaging platform, to get a feeling for how it should scale. A “safer” solution of course is to just pull some existing scalable message platform off the shelf.