Skip to content

streamthoughts/jikkou

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,090 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Jikkou Logo

Resource as Code for Apache Kafka and beyond

Topics, ACLs, schemas, quotas, and connectors: declared in Git, reconciled against your real clusters.
Kafka-first. Platform-ready.

Build Status License Release Stars

Reliability Maintainability Coverage

DocumentationInstallTutorialsSlack


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.

Jikkou in action

Why Jikkou?

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

How Jikkou Compares

Quick Start

Install

# Via SDKMan (recommended)
sdk install jikkou

# Or via Docker
docker pull streamthoughts/jikkou

See the full installation guide for native binaries, Homebrew, and more.

Define a Kafka topic

# 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, then apply

# Preview the change against the real cluster, not a state file
jikkou diff --files ./kafka-topics.yaml

# Apply it
jikkou apply --files ./kafka-topics.yaml

That'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

One Model, Every Platform

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

How It Works

Architecture

Jikkou follows a simple reconciliation loop:

  1. Read your resource definitions from YAML files (with Jinja templating support)
  2. Compute the differences between desired state and actual cluster state
  3. Apply only the minimal set of changes needed
  4. Report what was created, updated, or deleted

Deployment Modes

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

Documentation

Full documentation is available at jikkou.io.

Developers

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

Quick Build

# Build and run all tests
./mvnw clean verify

# Build without tests
./mvnw clean verify -DskipTests

# Apply code formatting
./mvnw spotless:apply

Requirements: Java 25, Docker (for integration tests), GraalVM (for native builds)

Contributors

Jikkou is built by its community. Thank you to everyone who has contributed!

Contributors

Want to see your name here? Check out the contribution guide and open issues.

Support the Project

If you find Jikkou useful, please consider:

License

Licensed under the Apache License, Version 2.0.


Developed with ❤ by Florian Hussonnois and the Jikkou community.

About

The Open source Resource as Code framework for Apache Kafka. Jikkou helps you implement GitOps for Kafka at scale!

Topics

Resources

License

Code of conduct

Contributing

Stars

297 stars

Watchers

8 watching

Forks

Contributors