Skip to content

Mesh

Pipebase ships with message-bus services that flows can publish to and subscribe from. Use them to decouple a flow on one runtime from a consumer on another.

  • Kafka (pipebase-kafka) — Apache Kafka 3.9.2 in single-node KRaft mode. Reachable as pipebase-kafka:9092 from inside the stack’s Docker network. Auto-creates topics on first publish. Topics and consumer offsets are persisted on the pipebase-kafka-data volume.
  • Pulsar (pipebase-pulsar) — Apache Pulsar 4.2 in single-node standalone mode. Reachable as pipebase-pulsar:6650 (binary) and :8080 (admin REST). Powers the cross-runtime mesh fabric.
  • Pulsar second broker (pipebase-pulsar-east) — opt-in geo- replication topology. Off by default.

Kafka and Pulsar start with the default docker compose up -d; --profile multi-broker adds pipebase-pulsar-east.

Terminal window
docker compose --profile multi-broker up -d # adds pipebase-pulsar-east
Use caseUse
Decouple producer + consumer flowsEither
High throughput (>10k msg/s)Kafka
Geo-replicationPulsar (multi-broker)
Per-namespace access grantsPulsar (MQTT and Pulsar clients; not AMQP)
Schema registryPulsar (the stack runs no Kafka schema registry)
Tiered storage to S3Neither as shipped — the Pulsar image includes no offloaders

Kafka — producer:

- to: kafka:orders.created

Kafka — consumer:

- from:
uri: kafka:orders.created
steps:
- log:
message: "Got order ${body}"

Pulsar:

- to: pulsar:persistent://public/default/events
- from:
uri: pulsar:persistent://public/default/events
parameters:
subscriptionName: pipebase-consumer

Pulsar requires a broker-signed token on every port and, for Pulsar and MQTT clients, a namespace grant (PIPEBASE_PULSAR_TOKEN_AUTH and PIPEBASE_PULSAR_AUTHORIZATION, both on by default). Kafka has no authentication; it publishes no port on the host, so only containers on the stack’s Docker network reach it.

  • Runtimes — runtimes that consume from / publish to mesh topics

Pipebase is operated by Jobu 42 Holding ApS · Company no. 44796988 Privacy