Kafka delivery guarantees
note
All the application code here is available from the docs git repository.
This example goes into how tremors delivery guarantees work in combination with a sink and source that also support delivery guarantees.
The scenario isn't all-encompassing but looks at the following specific use-case:
- A tremor source that does not hold guarantees.
- A WAL to persist data from the source
- A Kafka instance were data is send to
- A secondary tremor instance with a Kafka source that reads the data and prints it to stdout
With this we can demonstrate the recovery and delivery guarantees using a WAL Kafka.
We can start the example using docker-compose up
. Then with docker ps
we find the Kafka instance and can introduce an artificial error using docker pause <container>
. We will see the messages stopping if we wait for a while we can reenable kafka with docker unpause <container>
and will see the message flow resuming with a number of duplicated but no lost messages.