Skip to main content
Loading

Configure message format for Pulsar Outbound

Formatโ€‹

The format section specifies the serialization format of the data output. The supported formats are:

  • Avro - data will be converted to Avro format
  • Flat JSON - data will be converted to Flat JSON format
  • JSON - data will be converted to JSON format
  • MessagePack - data will be converted to MessagePack format
  • Custom - data will be converted to a custom format

WARNING

  • If the Aerospike record cannot be serialized as per the format configuration then the record will be skipped.
  • HyperLogLog bins will be forwarded as is, as bytes or Base64 encoded strings for string based formats.

JSONโ€‹

Specifies that the data be serialized to JSON format with the type information of bins.

OptionRequiredDefaultExpected valueDescription
modeyesjsonSelects JSON format.
stringify-map-keysnotrueWhether the numeric keys in CDT maps should be converted to strings. See Stringify Map Keys

Stringify Map Keysโ€‹

Aerospike allows many data types as keys in collection data types (CDTs) Maps, but JSON only allows strings as keys in objects. As of now the Pulsar connector only permits for conversion of numeric types to string keys when converting Aerospike CDT maps.

An Aerospike CDT map with any other data type as key will fail to be parsed in the Pulsar connector. Also, an Aerospike CDT map with numeric key, but stringify-map-keys set to false will fail to be parsed in the Pulsar connector.

Exampleโ€‹

format:
mode: json

Flat JSONโ€‹

Specifies that the data be serialized to Flat JSON format. The type information of bins is not part of the output.

OptionRequiredDefaultExpected valueDescription
modeyesflat-jsonSelects Flat JSON format.
metadata-keyyesThe Aerospike record metadata will be inserted into this top level key.
stringify-map-keysnotrueWhether the numeric keys in CDT maps should be converted to strings. See Stringify Map Keys

Exampleโ€‹

format:
mode: flat-json
metadata-key: metadata

MessagePackโ€‹

Specifies that the data be serialized to MessagePack format with the type information of bins.

OptionRequiredExpected valueDescription
modeyesmessage-packSelects message pack format.

Exampleโ€‹

format:
mode: message-pack

Avroโ€‹

Specifies that the data be serialized as Avro format. The Avro schema can be a map or a record. In the case of a map, just specifying the type of the map values is sufficient. In the case of a record, the exact field names and types need to be specified.

OptionRequiredDefaultExpected valueDescription
modeyesavroSelects avro format.
schemanoThe schema of the data.
schema-filenoThe file containing the schema of the data.
stringify-map-keysnotrueWhether the numeric keys in CDT maps should be converted to strings. See Stringify Map Keys

One of schema or schema-file has to be specified.

Aerospike record metadataโ€‹

The Aerospike record metadata has the following fields

MetadataTypeDescriptionPresent in
msgstringWrite/Delete operation.Delete and Write
namespacestringNamespace of the Aerospike record.Delete and Write
setstringSet of the Aerospike record.Write
userKeylong, double, bytes or stringThe user key of the Aerospike record.Write (only if user key is stored on server)
digestbytesThe digest of the Aerospike record.Delete and Write
genintThe generation of the Aerospike record.Write
lutintThe last update time of the Aerospike record.Write
expintThe expiry of the Aerospike record.Write
durablebooleanWhether the delete is durable.Delete

Customโ€‹

Specifies that the data be serialized with user provided custom code. See Format Transformer.

Exampleโ€‹

format:
mode: custom
class: com.aerospike.connect.outbound.example.Formatter