Skip to content

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

License

Notifications You must be signed in to change notification settings

streamthoughts/jikkou

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

966 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Jikkou Logo

Resource as Code for Apache Kafka

Declare. Apply. Automate.
Manage your Kafka resources the same way you manage your infrastructure.

Build Status License Release Stars

Reliability Maintainability Coverage

DocumentationInstallTutorialsSlack


Jikkou (jikkou / 実行 — execution in Japanese) is an open-source tool that lets you manage Apache Kafka resources declaratively using YAML files, the same way kubectl manages Kubernetes resources.

Stop writing scripts. Stop clicking through UIs. Define your desired state, and Jikkou makes it happen.

Jikkou in action

Why Jikkou?

Declarative Define Topics, ACLs, Schemas, Connectors, and Quotas as code in simple YAML files
GitOps-Ready Version-control your Kafka configuration and automate changes through CI/CD
Stateless No database needed — Jikkou uses your Kafka platform as the source of truth
Safe Built-in dry-run mode, validations, and reconciliation engine prevent accidents
Extensible Plugin-based architecture with providers, validators, transformations, and templates
Multi-Platform Works with Apache Kafka, Confluent Cloud, Aiven, Amazon MSK, Redpanda, and more

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

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

Supported Resources

Apache Kafka Schema Registry Kafka Connect Cloud Providers
Topics & Configs Avro Schemas Connectors Aiven (ACLs, Quotas)
ACLs JSON Schemas AWS Glue Schemas
Quotas Protobuf 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.