Kafka client library that adds de/serialization and versioning semantics to the official Kafka Clients library.
Currently, you can use four different modules:
- ets-kafka-clients-akka-stream
- ets-kafka-clients-avro
- ets-kafka-clients-core
- ets-kafka-clients-test
This module contains helper to create Akka Stream Kafka Flows and Sources.
This module contains de/serializers for Avro using Twitter Bijection.
This module contains the core functionality like different KafkaMessageProtocols, configuration wrappers and a simple consumer and producer.
You can find examples at the ets-kafka-clients-test module.
This library introduces three types of topics, these are
- Event topics with keys
- Event topics without keys
- State topics
These topics contain events like OrderCreatedEvent or OrderUpdatedEvent.
By event we mean that something occurred that may change some state.
These topics contain states like OrderState.
By state we mean the current state of an entity.
State topics always contain keys but two types of data
- New state, which means a new state for the given key exists
- Delete state, which means the state for the given key was deleted
When using the Versioned classes and functions, topics have to be named like .*-(unversioned|v[0-9]+).