Topics, ACLs, schemas, quotas, and connectors: declared in Git, reconciled against your real clusters.
Kafka-first. Platform-ready.
Documentation • Install • Tutorials • Slack
Your platform team runs Kafka for everyone else. Fifty app teams, and every new topic is a ticket. Configs drift between staging and production because someone "fixed" something by hand during an incident. Nobody can say who changed what, or why.
Jikkou (jikkou / 実行, execution in Japanese) fixes this the way kubectl fixed Kubernetes:
declare your Kafka resources (topics, ACLs, quotas, schemas, connectors) as YAML in Git, review changes
in pull requests, and let Jikkou reconcile the desired state against your real clusters. Kafka-first,
and platform-ready: the same engine manages Schema Registry, Kafka Connect, Confluent Cloud, Aiven,
Amazon MSK, AWS Glue, and Apache Iceberg.
| Your problem | Jikkou's answer |
|---|---|
| "Someone changed a topic by hand and nobody noticed" | Stateless reconciliation. No state file; jikkou diff compares Git against the actual cluster, so drift is always visible |
| "300 topics that differ by one value" | Jinja templating. One definition, per-environment values files |
| "Same config must land on five clusters" | Multi-cluster apply. Provider groups target a whole fleet in one command |
| "Every change needs review and an audit trail" | GitOps-native. YAML in Git, diff in the pull request, apply in CI |
| "We can't let a typo reach production" | Validations & dry-run. Platform rules (naming, min ISR, partition limits) enforced before anything is applied |
| "We also run Schema Registry, Connect, Iceberg…" | One agnostic engine. Pluggable providers, one resource model across your whole data platform |
- Jikkou vs Terraform: Terraform provisions clusters; Jikkou manages what lives inside them, without a state file to drift.
- Jikkou vs Strimzi Topic Operator: on Strimzi, keep the Topic Operator for topics; Jikkou covers everything it can't reach.
# Via SDKMan (recommended)
sdk install jikkou
# Or via Docker
docker pull streamthoughts/jikkouSee the full installation guide for native binaries, Homebrew, and more.
# kafka-topics.yaml
apiVersion: 'kafka.jikkou.io/v1beta2'
kind: 'KafkaTopic'
metadata:
name: 'my-topic'
spec:
partitions: 12
replicas: 3
configs:
min.insync.replicas: 2# Preview the change against the real cluster, not a state file
jikkou diff --files ./kafka-topics.yaml
# Apply it
jikkou apply --files ./kafka-topics.yamlThat's it. Jikkou computes the diff and applies only the necessary changes:
TASK [CREATE] Create a new topic my-topic (partitions=12, replicas=3) - CHANGED
EXECUTION in 2s 661ms
ok: 0, created: 1, altered: 0, deleted: 0, failed: 0
The same declarative YAML model covers your entire streaming platform. And because the engine is platform-agnostic, it extends beyond Kafka: Apache Iceberg tables, views, and namespaces are managed with the exact same workflow.
| Apache Kafka | Schema Registry | Kafka Connect | Apache Iceberg | Cloud Providers |
|---|---|---|---|---|
| Topics & Configs | Avro Schemas | Connectors | Tables | Aiven (ACLs, Quotas) |
| ACLs | JSON Schemas | Views | Confluent Cloud (RBAC) | |
| Quotas | Protobuf Schemas | Namespaces | AWS Glue Schemas | |
| Consumer Groups | ||||
| Brokers & Users | ||||
| KTable Records |
Jikkou follows a simple reconciliation loop:
- Read your resource definitions from YAML files (with Jinja templating support)
- Compute the differences between desired state and actual cluster state
- Apply only the minimal set of changes needed
- Report what was created, updated, or deleted
| Mode | Description |
|---|---|
| CLI | Run as a command-line tool — perfect for local development and CI/CD pipelines |
| API Server | Run as a REST API server — ideal for platform teams and automation |
| Docker | Available as container images on Docker Hub |
| Native Binary | GraalVM-compiled native executables for instant startup |
Full documentation is available at jikkou.io.
For build instructions, development setup, and contribution guidelines, see:
- CONTRIBUTING.md — How to contribute, coding guidelines, commit conventions
- AGENTS.md — Detailed development guidelines, build commands, and architecture
# Build and run all tests
./mvnw clean verify
# Build without tests
./mvnw clean verify -DskipTests
# Apply code formatting
./mvnw spotless:applyRequirements: Java 25, Docker (for integration tests), GraalVM (for native builds)
Jikkou is built by its community. Thank you to everyone who has contributed!
Want to see your name here? Check out the contribution guide and open issues.
If you find Jikkou useful, please consider:
- Using Jikkou in production? Tell us in GitHub Discussions: real-world usage reports help the project more than anything else
- Giving it a star on GitHub to help others discover it
- Joining the Slack community to ask questions and share feedback
- Contributing code, documentation, or bug reports
Licensed under the Apache License, Version 2.0.
Developed with ❤ by Florian Hussonnois and the Jikkou community.


