Exactly-once — обработать сообщение ровно один раз. Звучит просто, но в распределённых системах это крайне сложно. At-least-once (ретраи) + идемпотентность = effectively exactly-once. Kafka поддерживает exactly-once через транзакционный producer + consumer с read_committed. В своей системе: каждое сообщение имеет уникальный ID, обработку и запись результата делаешь в одной транзакции, при повторной обработке проверяешь, было ли уже. Или используешь outbox pattern: пишешь в БД + в outbox-таблицу атомарно, потом отдельный процесс публикует из outbox.
Как обеспечить exactly-once processing?
Senior
246 просмотровAFK Offer AI
Задача: объясните почему nil interface не равен nil pointer