Quickstart

YAML-based workflow

Gafkalo manages Kafka resources through YAML definitions.

  1. Define resources in YAML

  2. Generate a plan

  3. Apply changes

Basic workflow

Create a config file:

connections:
  kafka:
    bootstrapBrokers: ["localhost:9093"]

kafkalo:
  input_dirs:
    - "data/*.yaml"

Define a topic in data/topics.yaml:

topics:
  - name: events.user.login
    partitions: 6
    replication_factor: 3
    configs:
      cleanup.policy: delete
      min.insync.replicas: 2
      retention.ms: 604800000

Generate plan:

gafkalo plan --config config.yaml

Apply changes:

gafkalo apply --config config.yaml

Features

  • Declarative YAML-based management

  • Plan and apply workflow (dry-run support)

  • Topics, schemas, RBAC, connectors

  • CLI producer/consumer with schema support

  • Topic linter for best practices

  • No external dependencies (pure Go)

  • GitOps ready

What it manages

Topics

Create, update partitions, manage configs

Schemas

Register Avro schemas, set compatibility levels

RBAC

Manage Confluent RBAC rolebindings (producer, consumer, resourceowner)

Connectors

Create and manage Kafka Connect connectors

Limitations

  • No topic/schema deletion (by design)

  • No ACL support (RBAC only)

  • Sarama-based (no librdkafka)