OpenEdge.Messaging is a generic messaging API, made up of a number of classes and interfaces, including classes specific to using Apache Kafka®. This API supports sending and receiving messages to and from Kafka. The purpose of the API is to allow the ABL code to perform operations, such as constructing a producer and sending messages to a Kafka cluster, or constructing a consumer and consuming messages from a Kafka cluster. For more detail, see the OpenEdge.Messaging package in the OpenEdge ABL API Reference. Before using this API, you should be familiar with Kafka concepts and terminology and know how to set up Kafka with OpenEdge.

For a Kafka producer, you can use the API to:
  • Create and configure a producer builder
  • Create and configure a topic builder (optional)
  • Create and configure a record builder
  • Send records (messages) to a Kafka cluster

The following table describes the classes and interfaces provided by the OpenEdge.Messaging API for sending messages to Kafka.

Class or interface Description
OpenEdge.Messaging.IProducer An interface that provides a way to construct records and send records.
OpenEdge.Messaging.IProducerRecord An interface used by the underlying implementation for holding data that needs to be sent.
OpenEdge.Messaging.ISendResponse An interface that provides a way retrieve the status of a message that was sent.
OpenEdge.Messaging.ISerializationContext An interface that provides serialization information to the serializer.
OpenEdge.Messaging.ISerializer An interface that converts an object to bytes for transmission.
OpenEdge.Messaging.ITopicConfiguration An interface that provides per-topic configuration.
OpenEdge.Messaging.Kafka.KafkaProducerBuilder A class that provides the producer builder for the OpenEdge Kafka producer implementation.
OpenEdge.Messaging.Kafka.KafkaProducerConfig A class that holds the producer configuration constants for the high-priority, producer-related Apache Kafka library options.
OpenEdge.Messaging.MessagingError A messaging error class for when an exception is thrown from the ABL code of the messaging framework.
OpenEdge.Messaging.ProducerBuilder A class that exposes properties and method needed to configure the producer.
OpenEdge.Messaging.ProducerConfig A class which stores the serializer for the record body and the character encoding if the serializer is a StringSerializer.
OpenEdge.Messaging.ProducerRegistry A class that acts as a single point of configuration where implementations of the messaging API can be registered and retrieved.
OpenEdge.Messaging.RecordBuilder A class that exposes methods needed to configure the record.
OpenEdge.Messaging.RecordHeader A class that constructs record headers.
OpenEdge.Messaging.TopicConfigurationBuilder A class that handles topic specific configuration.

Relationships between classes/interfaces

The following diagrams show some of the hierarchies and relationships between the classes/interfaces.

Figure 1. Builders
Figure 2. Registries
Figure 3. Serializer
Figure 4. Error classes