Кто должен читать результаты из очереди, сохранять сообщения и чаты в базы данных и отправлять потоковые данные в открытое SSE-соединение?

Результаты должен обрабатывать consumer с идемпотентной записью, а SSE доставляет уже упорядоченные события клиенту, не становясь единственным хранилищем.

Короткий ответ

Что ответить на собеседовании

Результаты должен обрабатывать consumer с идемпотентной записью, а SSE доставляет уже упорядоченные события клиенту, не становясь единственным хранилищем.

Подробный разбор

Ответ с пояснениями

Результаты должен обрабатывать consumer с идемпотентной записью, а SSE доставляет уже упорядоченные события клиенту, не становясь единственным хранилищем.

Свяжите события с operation/chat и монотонным номером. Сначала надёжно фиксируйте результат или событие, затем распространяйте его через outbox/pub-sub; повторная доставка не должна дублировать сообщение. Открытым соединением владеет web-процесс, который подписывается на события либо читает журнал. Переподключение восстанавливается по последнему event id, а не требует живого прежнего worker.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее