Kafka sender transport component

To send messages to a Kafka topic, you can configure the sender mode of the Kafka transport component that is available in the Sterling™ Order Management System Software service definition framework and can be accessed from process modeling in the Applications Manager.

Note: To publish messages in JSON format by using a Kafka sender, configure the yfs property xmljson.usejson.out.forflows with the list of services that require JSON output. When a Kafka sender is included in the service flow, messages sent to the Kafka topic are in JSON format.
Figure 1. Service definition screen with Kafka transport type
Service definition screen with Kafka transport type

You can use the Kafka sender transport component in synchronous and asynchronous services to send messages from Sterling Order Management System Software to Kafka.

Figure 2. Details screen for Kafka sender
You can use the Kafka sender transport component in synchronous and asynchronous services to send messages from Sterling Order Management System Software to Kafka.
In the Kafka sender transport component, the following fields on the General tab are available:
Fields Description
Topic A mandatory field that specifies where the Kafka messages are sent.
Config Group Id An optional field that lists the identifier that uses the set of pass-through properties for Kafka configuration definitions. If you do not specify any value, the global config group ID is used. If the global config group ID is not specified, Kafka uses the default value for each configuration.
Partition Id An optional field. Define the ID for the partition key. If you do not specify the ID, the Kafka Producer determines the partition ID.
Partition Key An optional field. You can specify a static string or a valid XPath expression that resolves to a value within the message, such as a customer ID. It can be used as the partition key. If the XPath does not resolve to a valid value, the Kafka producer assigns a null partition key, and the default sticky partitioning logic of Kafka is applied.

To troubleshoot incorrect partitioning, you can enable the Kafka debug logs to verify the XPath resolution and update it if it does not extract the correct partition key.

Wait on send By default, this checkbox is selected, and Kafka sends the messages synchronously until the messages are written to the destination topic. If the checkbox is cleared, Kafka sends the messages asynchronously.
Commit of this message depends on parent transaction Select the Commit of this message depends on parent transaction checkbox to use Kafka transactional sender. By default, this checkbox is not selected, which indicates that the message commit sent to Kafka is not part of the parent transaction.

Use the Kafka configurations tab to override the pass-through configuration properties at the specific service level.

Figure 3. Kafka configurations for Kafka Producer
Use the Kafka configurations tab to override the pass-through configuration properties at the specific service level.

Kafka also supports the Kafka headers. The Kafka transport component allows Kafka headers to be set at the service level on the Kafka Headers tab. Headers that are specific to the flow or service can be specified as key-value pairs. When the message is sent, the key-value pairs are sent to the Kafka producer as part of the ProducerRecord. However, during the message creation, Kafka headers cannot be passed dynamically. Kafka headers are service-specific, so you must specify Kafka headers at the service level.

Figure 4. Kafka headers for Kafka Producer
Kafka also supports the Kafka headers. The Kafka transport component allows Kafka headers to be set at the service level on the Kafka Headers tab. Headers that are specific to the flow or service can be specified as key-value pairs. When the message is sent, the key-value pairs are sent to the Kafka producer as part of the ProducerRecord. However, during the message creation, Kafka headers cannot be passed dynamically. Kafka headers are service-specific, so you must specify Kafka headers at the service level.