Нужны устойчивое событие в одной транзакции с записью, повторная доставка и идемпотентное обновление проекции. Обещание 100% требует оговорённых условий восстановления и хранения.
Как гарантировать что 100% запросов на обновление данных в конечном итоге приедут в read-модель?
Нужны устойчивое событие в одной транзакции с записью, повторная доставка и идемпотентное обновление проекции. Обещание 100% требует оговорённых условий восстановления и хранения.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Нужны устойчивое событие в одной транзакции с записью, повторная доставка и идемпотентное обновление проекции. Обещание 100% требует оговорённых условий восстановления и хранения.
Типичная схема — transactional outbox: изменение бизнес-данных и запись события фиксируются вместе. Отдельный процесс доставляет событие брокеру с повторами. Consumer сохраняет результат и отметку обработки атомарно, а подтверждение делает после успешной записи.
Контролируйте lag, необработанные ошибки, retention и возможность replay. Защититесь от дублей и нарушения порядка по версии сущности. Если данные безвозвратно потеряны или обработчик навсегда сломан, никакая формулировка «eventually» не гарантирует доставку без вмешательства.