Chapter 23. Configuring a service and KIE Server to emit Kafka messages when a transaction is committed


You can configure KIE Server to emit Kafka messages automatically. In this case, KIE Server sends a message every time a task, process, case, or variable is created, updated, or deleted. The Kafka message contains information about the modified object. KIE Server sends the message when it commits the transaction with the change.

You can use this functionality with any business process or case. You do not need to change anything in the process design.

This configuration is also available if you run your process service using SpringBoot.

By default, KIE Server publishes the messages in the following topics:

  • jbpm-processes-events for messages about completed processes
  • jbpm-tasks-events for messages about completed tasks
  • jbpm-cases-events for messages about completed cases

You can configure the topic names.

The published messages comply with the CloudEvents specification version 1.0. Each message contains the following fields:

  • id: The unique identifier of the event
  • type: The type of the event (process, task, or case)
  • source: The event source as a URI
  • time: The timestamp of the event, by default in the RFC3339 format
  • data: Information about the process, case, or task, presented in a JSON format

Procedure

  1. To enable emitting Kafka messages, complete one of the following steps:

    1. If you deployed KIE Server on Red Hat JBoss EAP or another application server, complete the following steps:

      1. Download the rhpam-7.12.0-maven-repository.zip product deliverable file from the Software Downloads page of the Red Hat Customer Portal.
      2. Extract the contents of the file.
      3. Copy the maven-repository/org/jbpm/jbpm-event-emitters-kafka/7.59.0.Final-redhat-00006/jbpm-event-emitters-kafka-7.59.0.Final-redhat-00006.jar file into the deployments/kie-server.war/WEB-INF/lib subdirectory of the application server.
    2. If you deployed the application using SpringBoot, add the following lines to the <dependencies> list in the pom.xml file of your service:

      <dependency>
        <groupId>org.jbpm</groupId>
        <artifactId>jbpm-event-emitters-kafka</artifactId>
        <version>${version.org.kie}</version>
      </dependency>
      Copy to Clipboard Toggle word wrap
  2. Configure any of the following KIE Server system properties as necessary:

    • org.kie.jbpm.event.emitters.kafka.bootstrap.servers: The host and port of the Kafka broker. The default value is localhost:9092. You can use a comma-separated list of multiple host:port pairs.
    • org.kie.jbpm.event.emitters.kafka.date_format: The timestamp format for the time field of the messages. The default value is yyyy-MM-dd’T’HH:mm:ss.SSSZ .
    • org.kie.jbpm.event.emitters.kafka.topic.processes: The topic name for process event messages. The default value is jbpm-processes-events.
    • org.kie.jbpm.event.emitters.kafka.topic.cases: The topic name for process event messages. The default value is jbpm-cases-events.
    • org.kie.jbpm.event.emitters.kafka.topic.tasks: The topic name for process event messages. The default value is jbpm-processes-tasks.
    • org.kie.jbpm.event.emitters.kafka.client.id: An identifier string to pass to the server when making requests. The server uses this string for logging.
    • org.kie.jbpm.event.emitters.kafka.property_name: You can set any Red Hat AMQ Streams consumer or producer property by using the org.kie.jbpm.event.emitters.kafka prefix. For example, to set a value for the buffer.memory producer property, set the org.kie.jbpm.event.emitters.kafka.buffer.memory KIE Server system property.

      This setting applies when the KIE Server emits Kafka messages automatically when completing transactions.

      For a list of Red Hat AMQ Streams consumer and producer properties, see the Consumer configuration parameters and Producer configuration parameters appendixes in Using AMQ Streams on RHEL.

Back to top
Red Hat logoGithubredditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust. Explore our recent updates.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

Theme

© 2025 Red Hat