KafkaOutboxProperties

@ConfigurationProperties(prefix = "veds.outbox")
data class KafkaOutboxProperties(val pollInterval: Duration = Duration.ofSeconds(DEFAULT_POLL_INTERVAL_SECONDS), val batchSize: Int = DEFAULT_BATCH_SIZE, val maxRetries: Int = DEFAULT_MAX_RETRIES, val retryCooldown: Duration = Duration.ofMinutes(DEFAULT_RETRY_COOLDOWN_MINUTES), val stuckThreshold: Duration = Duration.ofMinutes(DEFAULT_STUCK_THRESHOLD_MINUTES))(source)

Externalized configuration for the Kafka transactional outbox.

Bound from veds.outbox.* and consumed by KafkaOutboxProcessor. All values have sane defaults so the outbox works out-of-the-box without any configuration.

Example:

veds:
outbox:
poll-interval: 5s
batch-size: 100
max-retries: 5
retry-cooldown: 1m
stuck-threshold: 5m

Constructors

Link copied to clipboard
constructor(pollInterval: Duration = Duration.ofSeconds(DEFAULT_POLL_INTERVAL_SECONDS), batchSize: Int = DEFAULT_BATCH_SIZE, maxRetries: Int = DEFAULT_MAX_RETRIES, retryCooldown: Duration = Duration.ofMinutes(DEFAULT_RETRY_COOLDOWN_MINUTES), stuckThreshold: Duration = Duration.ofMinutes(DEFAULT_STUCK_THRESHOLD_MINUTES))

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard

Max rows fetched (and locked) per poll cycle.

Link copied to clipboard

Maximum publishing attempts before a message is dead-lettered.

Link copied to clipboard

Scheduled poller interval (also used for the stuck-message reaper).

Link copied to clipboard

Minimum time between two attempts on the same message. Acts as an exponential-backoff-less cooldown for the next dispatch.

Link copied to clipboard

A message stuck in PROCESSING for longer than this is considered abandoned (publisher crashed) and becomes eligible for dispatch again.