Skip to content

Kafka

Runs Kafka 1 – 4 · macOS & Linux · registry page ↗

A local, disk-backed broker that speaks enough of the Kafka wire protocol that unmodified clients (franz-go, kcat, Sarama, the Java client) connect and work. No JVM, no ZooKeeper, no KRaft — the engine is doze-kafka, embedded in the module, and version selects the Kafka protocol profile it advertises (1–4). Declare topics and doze converges them on boot; auto-create handles the rest.

kafka "events" {
version = 4
port = 9092
auto_create_topics = true
default_partitions = 1
retention = "168h"
topic "orders" {
partitions = 3
}
topic "payments" {
partitions = 1
config = { "cleanup.policy" = "compact" }
}
}

The version = you write is the engine’s own version — the only version that’s yours. doze fetches and verifies it, pins it in doze.lock, and picks the module release providing it automatically.

1 · 2 · 3 · 4

FieldTypeDefaultDescription
versionnumberAdvertised Kafka protocol profile — 1, 2, 3, or 4. Required.
auto_create_topicsbooltrueCreate unknown topics on first reference.
default_partitionsnumber1Partition count for auto-created topics.
retentionstringDelete segments older than this (Go duration, e.g. “168h”); empty = unbounded.
retention_bytesnumberDelete old segments once a partition exceeds this size (0 = unbounded).

Machinery, for the curious: the plugin releases that provide this engine. doze selects the newest compatible one and pins it in doze.lock — you never write these. Older releases stay resolvable for pinned lockfiles.

ReleaseEngine versionsPlatforms
0.1.11 · 2 · 3 · 43stable
0.1.01 · 2 · 3 · 43

Raw signed data: index.yaml ↗ · meta.yaml ↗