Apache Kafka with Progress OpenEdge

What is Apache Kafka? 

 

Apache Kafka is a stream-processing platform that helps manage and process continuous streams of data efficiently. It is widely used for real-time data streaming, message brokering, and event-driven architectures. 

 

Key Features:

 

  • Publish and subscribe to different data streams. 
  • Process events from streams whenever needed. 
  • Organize data into topics for scalability and performance. 
  • Producers publish messages to topics. 
  • Consumers subscribe to topics to receive messages. 

 

 

Setting Up Kafka with Progress OpenEdge 

 

To use Kafka with Progress OpenEdge, follow these steps. This guide includes all necessary steps except for setting up the Kafka environment, which can be done using Docker Compose. 

 

1. Create a docker-compose.yaml file 

 

Below is an example of a Docker Compose configuration for Kafka and Zookeeper: 

services: 
  zookeeper: 
    image: confluentinc/cp-zookeeper:7.4.4 
    environment: 
      ZOOKEEPER_CLIENT_PORT: 2181 
      ZOOKEEPER_TICK_TIME: 2000 
    ports: 
      - "22181:2181" 
 
  kafka: 
    image: confluentinc/cp-kafka:7.4.4 
    depends_on: 
      - zookeeper 
    ports: 
      - "29092:29092" 
    environment: 
      KAFKA_BROKER_ID: 1 
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092 
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT 
      KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT 
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 

 

2. Run Kafka and Zookeeper 

 

Execute the following command in the terminal to start the services: 

docker-compose up -d

 

This command downloads the required Docker images and runs Kafka and Zookeeper in the background. 

 

 

How Does It Work? 

 

Once Kafka is up and running, messages can be exchanged between Producers and Consumers. Producers send messages to a topic, and Consumers subscribe to receive them. 

 

 

Example Use Cases: 

 

  • Synchronizing multiple databases efficiently. 
  • Real-time data processing for event-driven applications. 
  • Ensuring high availability by reducing downtime during database failures. 

 

Why Use Kafka with OpenEdge? 

 

Kafka is a reliable, high-performance solution for handling real-time data streams. It provides: 

  • Scalability – Handles large volumes of data efficiently. 
  • Fault Tolerance – Prevents data loss and improves system reliability. 
  • Easy Integration – Works seamlessly with Progress OpenEdge and other enterprise systems. 

 

By implementing Kafka with OpenEdge, businesses can streamline data synchronization, improve system resilience, and enhance real-time processing capabilities. 

 


 

Author: Mihai Chiorean, Junior Developer

Mihai sees the world with a responsible, positive, and growth-oriented mindset. He has a special talent for solving bugs with patience and precision. Chill, sharp, and always up for a good conversation—Mihai is simply awesome to have around!

SEE HOW WE WORK.

FOLLOW US