Interoperation with Apache Kafka

TIBCO Enterprise Message Service can exchange messages with supported versions of Apache Kafka.

Note: This feature is only supported on Linux platforms.

EMS transports for Kafka facilitate communication between EMS and Kafka. They enable the EMS server to act as a Kafka client, capable of connecting to and exchanging messages with Kafka brokers.

The message flow between the EMS server and Kafka brokers is described by the transport definitions in transports.conf (see Transports) and the EMS topics in topics.conf (see Topics). Each transport definition contains the list of Kafka bootstrap servers the transport will connect to, and optionally, the URL list for a TIBCO® Messaging - Schema Repository for Apache Kafka deployment. EMS topics can be associated with these transport definitions using the import and export destination properties.

When an EMS topic is configured to import messages from a transport, the EMS server instructs the transport to listen for messages on the Kafka topic with the same name as the EMS topic. Any Kafka messages received by the transport are translated into Jakarta Messaging messages and imported to the EMS topic.

When an EMS topic is configured to export messages to a transport, the EMS server takes the Jakarta Messaging messages present on that topic, translates them into Kafka messages and instructs the transport to publish the messages to the Kafka topic with the same name as the EMS topic.

Warning: Do not configure EMS and Kafka round-tripping. That is, do not send messages from EMS to Kafka and then back to EMS, or the other way around.
Warning: When importing from Apache Kafka, the EMS server reports message consumption progress periodically to the Kafka broker through offset commits. If the server stops unexpectedly (for example, due to a crash, power loss, or a forced termination) before the latest progress is reported, then after a restart the server will re-import Kafka messages from the point of the last successful offset commit onwards. This may lead to message duplication.