---
title: "How monedula-gitops compares"
description: "monedula-gitops compared with Jikkou, JulieOps, Strimzi, Confluent for Kubernetes, kafka-gitops and the Terraform Kafka provider."
url: https://monedula.dev/flock/docs/gitops/concepts/comparisons/
---

monedula-gitops suits teams that want a topic, the applications that use it, their SCRAM users, quotas, schemas and Confluent Platform role bindings declared in Git, with the same model applied by a CLI in CI or by a Kubernetes operator. The tables compare what each project documents, as of the date at the end of this page.

## How to read the tables

- **Yes**: the project's documentation describes the feature.
- **Partial**: it covers part of the feature. The numbered note under the table says which part.
- **No**: the documentation says it does not, or its complete list of resources, commands or settings has no such entry.
- **Not documented**: the documentation does not settle it either way.

## What each tool manages

### Access

<div class="compare">

| Tool | Access on the topic | ACLs | Principals | RBAC (MDS) |
| --- | --- | --- | --- | --- |
| monedula-gitops | Yes | Yes | Yes | Yes |
| Jikkou | No | Yes | Yes | No<sup>1</sup> |
| JulieOps | Yes<sup>2</sup> | Yes | Partial<sup>3</sup> | Yes |
| kafka-gitops | No<sup>4</sup> | Yes | Partial<sup>5</sup> | No |
| Strimzi | No | Yes | Yes | No |
| Confluent for Kubernetes | No | Partial<sup>6</sup> | Partial<sup>7</sup> | Yes |
| Terraform Kafka provider | No | Yes | Yes | No |

</div>

- **Access on the topic** means producers and consumers are declared on the topic resource itself, not on a separate user, principal, service or ACL resource.
- **Principals** means the tool creates the principal's credential on the cluster, such as a SCRAM user.
- **RBAC (MDS)** means Confluent Platform role bindings through its Metadata Service (MDS).

Notes:

1. Jikkou manages role bindings on Confluent Cloud, which monedula-gitops does not. Its list of providers has none for Confluent Platform MDS.
2. JulieOps declares consumers and producers on a project, or on a single topic for access to that topic only.
3. Confluent Cloud service accounts only, behind an experimental feature flag. The docs list SASL/SCRAM as not yet implemented.
4. A service lists the topics it produces to and consumes from, in the same file as the topics.
5. The `account` command creates Confluent Cloud service accounts and never deletes them.
6. The `Kafka` resource turns on ACL authorization and sets super users. The ACLs themselves are created outside Confluent for Kubernetes.
7. SASL/PLAIN users from a Kubernetes Secret. SCRAM is not among its documented Kafka authentication methods.

### Topics, quotas and schemas

<div class="compare">

| Tool | Topics | Quotas | Schemas |
| --- | --- | --- | --- |
| monedula-gitops | Yes | Yes | Yes |
| Jikkou | Yes | Partial<sup>8</sup> | Yes |
| JulieOps | Yes | Partial<sup>9</sup> | Yes |
| kafka-gitops | Yes | No | No |
| Strimzi | Yes | Partial<sup>10</sup> | No |
| Confluent for Kubernetes | Yes | No | Yes |
| Terraform Kafka provider | Yes | Partial<sup>11</sup> | No |

</div>

- **Quotas** means Kafka client quotas per user, per client id, per user and client id together, or per IP.

Notes:

8. Quotas per user, per client id or both. Its list of quota types has none for IP addresses.
9. Quotas are documented per user principal. Client-id and IP quotas are not documented.
10. User quotas on the `KafkaUser`. Strimzi does not support client-level quotas.
11. One user, client id or IP per quota. The resource has no way to set a quota on a user and client id together.

## How each tool runs

<div class="compare">

| Tool | CLI | Operator | Drift check | Import |
| --- | --- | --- | --- | --- |
| monedula-gitops | Yes | Yes | Yes | Yes |
| Jikkou | Yes | No<sup>12</sup> | Yes | Yes |
| JulieOps | Yes | No | Partial<sup>13</sup> | No |
| kafka-gitops | Yes | No | Yes | No |
| Strimzi | No | Yes | Partial<sup>14</sup> | No<sup>15</sup> |
| Confluent for Kubernetes | No | Yes | No<sup>16</sup> | Not documented<sup>17</sup> |
| Terraform Kafka provider | Yes<sup>18</sup> | No | Yes | Partial<sup>19</sup> |

</div>

- **CLI** means the tool applies the declared state from a command line or a CI job, without Kubernetes.
- **Operator** means it runs in a Kubernetes cluster, watches custom resources and reconciles them continuously.
- **Drift check** means it compares the declared state with the live cluster and reports the differences without changing anything, for example to fail a CI job.
- **Import** means it writes declarations from what already exists on a cluster.

Notes:

12. Jikkou runs as a CLI or as a REST API server.
13. `--dryRun` prints the execution plan without changing anything. Whether that plan compares ACLs and other non-topic state with the live cluster or with JulieOps's own state file depends on `topology.state.cluster.enabled`. A dedicated drift check or drift exit code is not documented.
14. The Topic Operator reverts configuration changes made to a managed topic outside its `KafkaTopic`. A check that only reports drift is not documented.
15. You bring an existing topic under management by writing a matching `KafkaTopic` yourself.
16. A topic change made outside its `KafkaTopic`, for example with Control Center or the Confluent CLI, is not reconciled, and the resource and the topic get out of sync.
17. A `Schema` resource can only manage subjects that Confluent for Kubernetes created, not pre-existing ones.
18. Through the Terraform CLI: `terraform plan` and `terraform apply`.
19. `terraform import` adopts one existing topic, ACL, quota or SCRAM credential at a time, by its ID. Importing a SCRAM credential needs its password, because Kafka cannot return it.

On 2026-10-01 none of these repositories was archived. Jikkou released v1.1.0 on 2026-08-03 and the Terraform provider v0.13.1 on 2025-09-22. JulieOps last released v4.4.1 on 2022-10-10, and its README says the project is in a "long winter hibernation". kafka-gitops last released 0.2.15 on 2021-02-25.

## When to choose something else

- **You run Kafka with Strimzi, and topics and users are all you need.** The Topic and User Operators come with the platform that runs your brokers, and their standalone deployment also manages a Kafka cluster that Strimzi does not run.
- **You run Confluent Platform with Confluent for Kubernetes.** Its `KafkaTopic`, `Schema` and `ConfluentRolebinding` resources sit next to the resources that deploy your brokers, and a `KafkaTopic` can also target a Confluent Cloud cluster.
- **You need Kafka Connect, Aiven, AWS Glue or Confluent Cloud role bindings.** Jikkou manages connectors, Aiven ACLs and quotas, AWS Glue schemas and Confluent Cloud role bindings, which monedula-gitops does not. It also has templates, validation policies and an API server.
- **Kafka is one of many resources you provision with Terraform.** The Terraform provider keeps topics, ACLs, quotas and SCRAM credentials in the same plan and state as the rest of your infrastructure.
- **Your license policy rules out AGPL.** monedula-gitops is AGPL-3.0. Jikkou, kafka-gitops and Strimzi are Apache-2.0, and JulieOps and the Terraform provider are MIT.

## Sources

Checked on 2026-10-01 against:

- Jikkou: [documentation overview](https://www.jikkou.io/docs/), [Kafka topics](https://www.jikkou.io/docs/reference/providers/kafka/resources/topics/), [authorizations](https://www.jikkou.io/docs/reference/providers/kafka/resources/acls/), [users](https://www.jikkou.io/docs/reference/providers/kafka/resources/users/), [quotas](https://www.jikkou.io/docs/reference/providers/kafka/resources/quotas/), [Schema Registry provider](https://www.jikkou.io/docs/reference/providers/schema-registry/), [Confluent Cloud role bindings](https://www.jikkou.io/docs/reference/providers/confluent-cloud/resources/role-binding/), [CLI reference](https://www.jikkou.io/docs/reference/cli/), [detect configuration drift](https://www.jikkou.io/docs/how-to-guides/automating/detect-configuration-drift/), [back up and restore](https://www.jikkou.io/docs/how-to-guides/backup-and-restore/), [Jikkou vs Strimzi Topic Operator](https://www.jikkou.io/docs/comparisons/jikkou-vs-strimzi/), [repository](https://github.com/streamthoughts/jikkou) and [releases](https://github.com/streamthoughts/jikkou/releases)
- JulieOps: [README](https://github.com/kafka-ops/julie), [managing topics](https://julieops.readthedocs.io/en/latest/futures/what-topic-management.html), [controlling the access](https://julieops.readthedocs.io/en/latest/futures/what-acl-management.html), [managing principals](https://julieops.readthedocs.io/en/latest/futures/what-principal-management.html), [quotas](https://julieops.readthedocs.io/en/latest/futures/use-of-quotas.html), [schemas](https://julieops.readthedocs.io/en/latest/futures/what-schema-management.html), [configuration values](https://julieops.readthedocs.io/en/latest/config-values.html), [how to run it](https://julieops.readthedocs.io/en/latest/how-to-run-it.html) and [releases](https://github.com/kafka-ops/julie/releases)
- kafka-gitops: [README](https://github.com/devshawn/kafka-gitops), [documentation](https://github.com/devshawn/kafka-gitops/blob/master/docs/documentation.md), [desired state specification](https://github.com/devshawn/kafka-gitops/blob/master/docs/specification.md), [quick start](https://github.com/devshawn/kafka-gitops/blob/master/docs/quick-start.md), [Confluent Cloud](https://github.com/devshawn/kafka-gitops/blob/master/docs/confluent-cloud.md), [installation](https://github.com/devshawn/kafka-gitops/blob/master/docs/installation.md) and [releases](https://github.com/devshawn/kafka-gitops/releases)
- Strimzi 1.2.0: [Deploying and Managing Strimzi](https://strimzi.io/docs/operators/latest/deploying), sections 1.1, 7.7, 12 (Topic Operator), 13 (User Operator) and 16.3 (user authentication, authorization and quotas), and the [repository](https://github.com/strimzi/strimzi-kafka-operator)
- Confluent for Kubernetes: [overview](https://docs.confluent.io/operator/current/overview.html), [API reference](https://docs.confluent.io/operator/current/co-api.html), [manage Kafka topics](https://docs.confluent.io/operator/current/co-manage-topics.html), [simple ACLs](https://docs.confluent.io/operator/current/co-simple-acls.html), [authentication](https://docs.confluent.io/operator/current/co-authenticate-kafka.html), [manage schemas](https://docs.confluent.io/operator/current/co-manage-schemas.html) and [manage RBAC](https://docs.confluent.io/operator/current/co-manage-rbac.html)
- Terraform Kafka provider: [README](https://github.com/Mongey/terraform-provider-kafka), resource docs for [topics](https://github.com/Mongey/terraform-provider-kafka/blob/main/docs/resources/topic.md), [ACLs](https://github.com/Mongey/terraform-provider-kafka/blob/main/docs/resources/acl.md), [quotas](https://github.com/Mongey/terraform-provider-kafka/blob/main/docs/resources/quota.md) and [SCRAM credentials](https://github.com/Mongey/terraform-provider-kafka/blob/main/docs/resources/user_scram_credential.md), [releases](https://github.com/Mongey/terraform-provider-kafka/releases), and Terraform's [plan command](https://developer.hashicorp.com/terraform/cli/commands/plan)