org.locationtech.geomesa.kafka
Serializes GeoMessages
GeoMessage
Serialized GeoMessages
Current encoding (version 2/3), designed to work with kafka log compaction. See https://kafka.apache.org/10/documentation.html#design_compactionbasics
Version 3 uses avro for serialized features, version 2 uses kryo
change: key: n bytes feature id value: n bytes for serialized feature (without id) headers: "v" -> serialization version
delete: key: n bytes feature id value: null - this allows for log compaction to delete the feature out headers: "v" -> serialization version
clear: key: empty value: empty headers: "v" -> serialization version
Version 1 legacy encoding:
change: key: 1 byte message version, 1 byte for message type ('C'), 8 byte long for epoch millis value: n bytes for serialized feature (with id)
delete: key: 1 byte message version, 1 byte for message type ('D'), 8 byte long for epoch millis value: n bytes for feature id
clear: key: 1 byte message version, 1 byte for message type ('X'), 8 byte long for epoch millis value: empty
Serialized
GeoMessage
sCurrent encoding (version 2/3), designed to work with kafka log compaction. See https://kafka.apache.org/10/documentation.html#design_compactionbasics
Version 3 uses avro for serialized features, version 2 uses kryo
change: key: n bytes feature id value: n bytes for serialized feature (without id) headers: "v" -> serialization version
delete: key: n bytes feature id value: null - this allows for log compaction to delete the feature out headers: "v" -> serialization version
clear: key: empty value: empty headers: "v" -> serialization version
Version 1 legacy encoding:
change: key: 1 byte message version, 1 byte for message type ('C'), 8 byte long for epoch millis value: n bytes for serialized feature (with id)
delete: key: 1 byte message version, 1 byte for message type ('D'), 8 byte long for epoch millis value: n bytes for feature id
clear: key: 1 byte message version, 1 byte for message type ('X'), 8 byte long for epoch millis value: empty