☁️ Данные в БД сохранили, а сообщение потеряли?
Такая проблема решается паттерном Transactional Outbox. Он помогает гарантированно отправить сообщение в Kafka, RabbitMQ или другой брокер, если основная операция в БД прошла успешно.
Мы сделали библиотеку, которая реализует этот паттерн для PostgreSQL и добавляет поверх него Kafka-подобную модель: топики, партиции, consumer group, offset.
В карточках рассказываем, как устроены producer и consumer, почему производительность не зависит от числа непрочитанных сообщений и как мы избегаем блокировок строк.
А скоро мы выложим библиотеку в открытый доступ!
⚡️ — если она пригодится в вашей работе.
#postgresql #outbox #architecture