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