This library provides serialization and deserialization for exchanges with Kafka. This takes the form of: data types, encode functions, and decode functions. This library is not a Kafka client. A Kafka client must be a much more opinionated piece of software. The purpose of this library is for Kafka clients to be built on top of it.
There are two module namespaces in this library: Kafka.Interchange
and
Kafka.Data
. Pseudoregex for modules in the Kafka.Interchange
namespace:
Kafka.Interchange.{msgtype}.(Request|Response).V[0-9]+
For example:
Kafka.Interchange.Message.Request.V2
Kafka.Interchange.Message.Response.V1
Kafka.Interchange.Produce.Request.V9
The message type "Message" is special. It's the wrapper that all other message types are serialized inside of. Request modules include a encode function. Response modules include a decode function.
Some shared types are used by both requests and responses. For such types, we
use the Kafka.Data
namespace. For example:
Kafka.Data.Acknowledgments
These are not versioned, and they include both encode and decode functions.