👨🎓 Outbox Pattern для System Design Интервью
❌ Сервис успел записать заказ, но не отправил событие
=> Потерян заказ, двойное списание или не консистентное состояние между сервисами.
✅ Как исправить - Outbox Pattern 📦:
• Сохраняем событие в таблицу outbox в той же транзакции, что и заказ
• Отдельный Relay/Ретранслятор/Воркер вычитывает события и публикует их в брокер
• Даже если сервис упал, запись не теряется, воркер перешлёт повторно
⚙️ Семантика
• At-least-once между outbox и брокером
• Дубликаты как осознанный компромисс ради гарантированной доставки
• Exactly-once достигается за счёт идемпотентной обработки у потребителей
💡 Зачем знать
1) Паттерн Outbox является базовым инструментом в event-driven архитектуре и частым вопросом на System Design интервью.
2) Появляется в конце интервью. Когда стартуют вопросы про повышение отказоустойчивости системы.
3) Делает ваше прохождение сильней. Увеличивает шансы на успех.
‼️ Моя статья на хабр
С уже известной вам героиней:
Outbox pattern для System Design Интервью
Post #389
3.39K
- 🔥 12
- ❤ 6
- 👍 3
- 🤷 1