StepflowStepflow

Kafka Trigger

Trigger workflows from Kafka topics

Kafka Trigger

The Kafka trigger allows you to initiate workflows by consuming messages from Kafka topics. It supports consumer groups for distributed processing and includes support for SSL and SASL authentication.

Installation

pnpm add @stepflowjs/trigger-kafka

Usage

import { KafkaTrigger } from "@stepflowjs/trigger-kafka";

const trigger = new KafkaTrigger({
  brokers: ["localhost:9092"],
  topic: "orders",
  groupId: "stepflow-orders",
  fromBeginning: false,
});

await trigger.start(async (event) => {
  console.log("Received Kafka message:", event.data);
  await stepflow.trigger("process-order", event.data);
});

Consumer Groups

By specifying a groupId, you can distribute message processing across multiple instances of your application. Kafka will ensure that each partition in the topic is assigned to only one consumer in the group.

Configuration

OptionTypeDescription
brokersstring[]Kafka broker URLs
topicstringTopic to consume from
groupIdstringConsumer group ID
clientIdstringOptional client identifier
fromBeginningbooleanOptional start from beginning (default: false)
sslbooleanOptional enable SSL
saslobjectOptional SASL authentication
sasl.mechanismstringplain, scram-sha-256, or scram-sha-512
sasl.usernamestringSASL username
sasl.passwordstringSASL password

Event Metadata

The event metadata contains Kafka-specific information:

{
  topic: string;
  partition: number;
  offset: string;
  key?: string;
  headers?: Record<string, string>;
  timestamp: string;
}

On this page