Событие сначала сохраняют устойчиво, затем отправляют с подтверждением и повторяют после сбоев. Получатель должен безопасно обрабатывать дубликаты: сеть не даёт exactly-once сама по себе.
Как гарантировать доставку событий при нестабильной сети (сеть может обрываться, события нельзя терять)?
Событие сначала сохраняют устойчиво, затем отправляют с подтверждением и повторяют после сбоев. Получатель должен безопасно обрабатывать дубликаты: сеть не даёт exactly-once сама по себе.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Событие сначала сохраняют устойчиво, затем отправляют с подтверждением и повторяют после сбоев. Получатель должен безопасно обрабатывать дубликаты: сеть не даёт exactly-once сама по себе.
Для связи с бизнес-записью подходит transactional outbox; удалять pending-событие можно только после согласованного подтверждения. Используйте стабильный ID, checkpoint и восстановление после перезапуска. Контролируйте место в очереди и длительность недоступности. Абсолютная гарантия требует оговорённых границ отказов: потеря всех устойчивых копий не исправляется одним retry.