...
Code Block |
---|
OffsetCommitRequest => ConsumerGroup [TopicName [Partition Offset Metadata]] ConsumerGroup => string TopicName => string Partition => int32 Offset => int64 Metadata => string |
These fields should be mostly self explanatory, except for metadata. This is meant as a way to attach arbitrary metadata that should be committed with this offset commit. It could be the name of a file that contains state information for the processor, or a small piece of state. Basically it is just a generic string field that will be passed back to the client when the offset is fetched. It will likely have a tight size limit to avoid server impact.
Response:
Code Block |
---|
OffsetCommitResponse => [TopicName [Partition ErrorCode]]] ErrorCode => int16 |
...
Code Block |
---|
OffsetFetchResponse => [TopicName [Partition Offset Metadata ErrorCode]]
|
For phase I the implementation would remain the existing zookeeper structure:
...