-
Notifications
You must be signed in to change notification settings - Fork 11
SourcesAvroV2
Joseph Glanville edited this page Feb 11, 2019
·
1 revision
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Version |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Control |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ ID +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ ShardBy +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| #KV Pairs | Key Length | Key (up to 255 bytes) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Value Length | Value (up to 65535 bytes) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Avro N Bytes |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The fields of the payload have the following semantic meaning:
- Length - Length of full packet
- Version - Version of the wire protocol used. In this case, 2.
- Control - Metadata governing on the payload is to be published. Version 1 & 2 of the protocol only support a bit indicating whether or not the client expects an ack after publication.
- ID - Explained in kwargs.
- ShardBy - Explained in kwargs.
- #KV Pairs - Number of KV pairs (max 255)
- Key Length - Length of Key in bytes (max 255)
- Key - N Bytes of Key data encoded as UTF-8 (max 255 bytes after encoding)
- Value Length - Length of Value data (max 65535)
- Value - N Bytes of Value data, no encoding enforced (max 65535 bytes)
-
SYNC
:: 0x00000001 - when specified the avro source will ACK publication into Cernan's internal queues by sending the payload's correspondingid
back to the client.
A Postmates Project
Tech Blog | Twitter @PostmatesDev | Jobs