Configure message brokers

Kalix eventing integrates with Google Cloud Pub/Sub and managed Kafka services such as Confluent Cloud and Aiven for Apache Kafka to enable asynchronous messaging.

Message brokers are configured on Kalix Project level. A project can have one broker configuration, Kalix eventing is independent of the broker technology.

Testing Kalix eventing

The Java SDK testkit has built-in support to simulate message brokers. See Testing the Integration.

Using a Kafka broker locally

During development, you may want to run a local Kafka broker for testing.

The docker-compose example file below shows how to set the kalix.proxy.eventing.support to kafka. A volume is mounted to the current directory ., which is expected to contain a kafka.properties file. The BROKER_CONFIG_FILE environment variable points to the kafka.properties file in the mounted volume 'conf', which ensures that the service can connect to Kafka.

version: "3"
services:
  kalix-runtime:
    image: gcr.io/kalix-public/kalix-proxy:1.1.36
    command: -Dkalix.proxy.eventing.support=kafka
    ports:
      - "9000:9000"
    extra_hosts:
      - "host.docker.internal:host-gateway"
    environment:
      BROKER_CONFIG_FILE: /conf/kafka.properties
    volumes:
      - .:/conf

You can check out a complete example in Java Customer Registry (with Kafka).