О теме
Outbox, dual write, DLQ и идемпотентный consumer — чтобы сообщение не потерялось и не удвоило оплату.
Лекции
Надёжная доставка
Poison, DLQ, retry и идемпотентный consumer
Poison message бесконечно валит воркера: в Kafka стопорит партицию на одном offset, в Rabbit крутится requeue. Retry с backoff и лимитом, затем DLQ. Консьюмер без идемпотентности удваивает деньги на каждом ретрае.
Надёжная доставка
Transactional outbox и dual write
Dual write — это commit в базу и publish в брокер без общей транзакции: можно получить заказ без события или событие без заказа. Outbox пишет событие в той же транзакции, что и данные; публикатор читает таблицу или WAL после commit.