В одной транзакции: записать бизнес-данные + событие в outbox таблицу. Отдельный publisher горутина: SELECT FROM outbox WHERE published = false ORDER BY created_at LIMIT 100 FOR UPDATE SKIP LOCKED. Публикует в Kafka/NATS, помечает published = true. Гарантирует at-least-once delivery. Consumer должен быть idempotent. Cleanup: удалять старые записи по крону.
Как реализовать outbox pattern на Go?
Senior
118 просмотровAFK Offer AI
Что такое os.DirEntry?