SSE, Long-polling или WebSocket
У CloudFlare есть проблемы с SSE, но хорошая поддержка WebSocket.
SSE просто писать и использовать, WebSocket сложнее.
А вот ребята вернулись к старому доброму Long-Polling https://blog.syncinc.so/events-not-webhooks — это просто HTTP запросы, которые хорошо работают давно.
Для меня было в новинку, как они предложили это делать. Обычно мы просто с интервалом запрашиваем сервер о новых данных постоянно и в логах например мы будем видеть запрос раз в секунду. А тут предлагают избавиться от лишних запросов при long pllling. Запрашивать данные /events и передавать последнее значение курсора (аналог Last-Event-ID в SSE) и получать все скопившиеся сообщения, а если их нет, то не завершать http запрос, пока не появятся новые сообщения.
In the lost art of long-polling, the client makes a standard HTTP request. If there is nothing new for the server to deliver to the client, the server holds the request open until there is new information to deliver.