Writing a Message to a Kafka Topic
You can use the Apache Kafka Producer adapter to write a message to a Kafka topic.
The Apache Kafka documentation speaks of events that contain a message, or of records in more technical parts of the documentation. This documentation summarizes all under the term "message".
Write a Message
Using the produce operation of the Apache Kafka adapter, you can write a message to a Kafka topic.
Attribute | Type | Direction | Description |
---|---|---|---|
producerRecord | in | Provide the message and the target for the adapter to send the message to a Kafka topic. | |
recordMetaData | out | Returns some meta data about the processing the Kafka broker has done. |
producerRecord is a complex structure that defines the message and target.The topic you want to write the message to is the only mandatory parameter.
Attribute | Type | Mandatory | Description |
---|---|---|---|
topic | String | Specify the topic the message should be sent do. | |
partition | Integer | Specify the partition the message should be send to. | |
key | Blob | Specify a key the message should be filed to. | |
id | Integer | Will be generated. We recommend not to set one manually. | |
headers | Array of MessageHeader | Specify headers if you want to provide additional information on the message content for e.g. routing or filtering use cases. | |
value | Blob | Specify the actual message content. Only payload of type Blob is supported. |
The Kafka Producer returns some meta data about the processing of the message.
Attribute | Type | Mandatory | Description | Allowed Values / Examples | |
---|---|---|---|---|---|
topic | String | Kafka topic the message has been sent to. | |||
partition | Integer | Topic partition the message has been sent to. | |||
offset | Integer | Offset of the message within the partition. | |||
recordId | Integer | The message ID as provided with the call, or as generated if it has not been specified. | |||
keySize | Integer | Actual size of the key in bytes. | |||
valueSize | Integer | Actual size of the value in bytes. | |||
timestamp | DateTime | A processing timestamp (UTC). See timestampType for what the timestamp refers to. | |||
timestampType | TimestampType | Indicates what the timestamp refers to. | NotAvailable | Timestamp is unknown. | |
CreateTime | Timestamp relates to message creation time as set by a Kafka broker. | ||||
LogAppendTime | Timestamp relates to the time a message was appended to a Kafka log. | ||||
persistedStatus | PersistedStatus | Status of the message. | NotPersisted | Message was never transmitted to the broker, or failed with an error indicating it was not written to the log. | |
Persisted | Message was written to the log and acknowledged by the broker. | ||||
PossiblyPersisted | Message was transmitted to broker, but no acknowledgement was received. |
Transaction Handling
The xUML Runtime handles Apache Kafka Producer calls like is specified in the Runtime transaction concept. All producer calls within a session are wrapped into a dedicated transaction with a random unique transaction ID. These transactions can be rolled back until they have been committed.
You cannot set a custom transaction ID (transactional.id), therefore there will be no fencing.
Related Pages:
Related Documentation: