A collection of reusable, production-ready Go modules for observability, messaging, databases, storage, and AI data infrastructure.
| Package | Description | Go Reference |
|---|---|---|
logger |
Structured logging with OpenTelemetry tracing and fx support | |
tracer |
Distributed tracing with OpenTelemetry and OTLP HTTP export | |
observability |
Unified observer interface for infrastructure packages | |
metrics |
Prometheus metrics with dual-endpoint separation and fx support | |
kafka |
Apache Kafka client with serialization, SASL/TLS and fx support | |
mariadb |
MariaDB/MySQL client with GORM, migrations, and fx support | |
minio |
MinIO/S3-compatible object storage client with fx support | |
postgres |
PostgreSQL client with GORM, migrations, and fx support | |
schema_registry |
Confluent Schema Registry client with Avro/Protobuf/JSON serializers and fx support |
- Go 1.25+
- Docker (for packages that use testcontainers:
kafka,mariadb,minio,postgres)
make install-toolsmake test # all packages
make test PKG=schema_registry # single package
make test PKG=schema_registry,kafka # multiple packages (comma-separated)Coverage threshold is enforced at 80%. Packages that require Docker (kafka, mariadb, minio, postgres) automatically set DOCKER_HOST and disable Ryuk.
make lint # all packages
make lint PKG=schema_registry # single package
make lint PKG=schema_registry,logger # multiple packages (comma-separated)make fmtmake docs # generates docs/ from Go source commentsmake clean # removes coverage files and test binariesmake pr # pushes current branch and opens a PR against main,
# or just pushes if a PR is already openContributions are welcome. Please open an issue before submitting a pull request for significant changes.