Что такое паттерны Outbox и Inbox?

Outbox надёжно связывает изменение данных и будущую отправку события. Inbox помогает получателю не применять одно сообщение повторно. Оба паттерна особенно полезны при доставке at-least-once.

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

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

Outbox надёжно связывает изменение данных и будущую отправку события. Inbox помогает получателю не применять одно сообщение повторно. Оба паттерна особенно полезны при доставке at-least-once.

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

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

Outbox надёжно связывает изменение данных и будущую отправку события. Inbox помогает получателю не применять одно сообщение повторно. Оба паттерна особенно полезны при доставке at-least-once.

В одной транзакции с бизнес-изменением пишут запись outbox. Отдельный отправитель доставляет её брокеру и отмечает обработку; сбой между отправкой и отметкой может создать дубль.

Получатель хранит message ID в inbox и фиксирует его вместе с эффектом обработки в своей транзакции. Уникальность ID предотвращает повторный эффект в этой БД. Для внешних вызовов нужны собственные ключи идемпотентности: наличие inbox не даёт магического exactly-once для всех систем. Также требуются повторы, наблюдаемость и очистка истории.

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

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

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

Подробнее