Contributing
Contributions are welcome.
Workflow
Section titled “Workflow”- Fork the repository.
- Create a feature branch.
- 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) - Open a pull request.
See Build from Source for the full set of build and test commands.
Conventions
Section titled “Conventions”- Async operations return
Future<T>(Vert.x); keep APIs non-blocking. - Java 21 records for DTO-style model types.
- SLF4J + Logback for logging, no
stdoutfrom application code. - Config resolution order: classpath → external file → environment variables.
When adding a metric
Section titled “When adding a metric”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.