Mailer
Operations

Delivery Guarantees

At-most-once, at-least-once, and exactly-once behavior.

Delivery guarantees depend on checkpointing and sink capabilities.

ConfigurationState guaranteeOutput guarantee
No checkpointingNone across restartAt-most-once across restart
Checkpointing with plain sinkExactly-once stateAt-least-once output
Kafka exactly-once source + TxnKafkaSink + checkpointingExactly-once stateEnd-to-end exactly-once

Plain sinks

With a plain sink, recovery may replay records already written before the crash. Operator state restores correctly, but external output can be duplicated.

Use idempotent output writes, Postgres upserts, or transactional Kafka when duplicates matter.

Transactional Kafka

Transactional Kafka coordinates source offsets, operator state, and sink output through checkpoint transactions.

Consumers must use:

isolation.level=read_committed

Without read_committed, consumers can observe aborted transaction output and break the exactly-once guarantee.

On this page