Skip to content

Contributing

Contributions are welcome.

  1. Fork the repository.
  2. Create a feature branch.
  3. Run the tests before submitting:
    Terminal window
    ./gradlew test # Java tests
    ./scripts/test-helm-chart.sh # Helm chart template tests
    ./scripts/e2e-test.sh # End-to-end (k3d + real Kafka)
  4. Open a pull request.

See Build from Source for the full set of build and test commands.

  • Async operations return Future<T> (Vert.x); keep APIs non-blocking.
  • Java 21 records for DTO-style model types.
  • SLF4J + Logback for logging, no stdout from application code.
  • Config resolution order: classpath → external file → environment variables.

Metric names and tags are part of the public API. When you add, rename, or retag a metric, also update the reporter/collector and its tests, the README.md and CLAUDE.md metric docs, the Grafana dashboard (dashboard/demo-dashboard.json), and, if Helm/ServiceMonitor behavior changes, the chart values, templates, README, and Helm tests.