Polling: отдельный @Scheduled поток каждые N секунд читает из outbox таблицы не-отправленные события (status=PENDING), публикует в Kafka, обновляет status=SENT. Для нескольких инстансов нужен distributed lock или SELECT FOR UPDATE SKIP LOCKED чтобы один инстанс не дублировал публикацию. Альтернатива — CDC через Debezium. Polling проще в настройке, CDC более надёжен при большом объёме. Главное: idempotent consumers — at-least-once delivery неизбежна.
Что такое Outbox polling pattern и как его реализовать?
Senior
261 просмотровAFK Offer AI
Как реализовать graceful shutdown в Spring Boot?