Skip to content

TelkomIndonesia/go-boilerplate

Repository files navigation

Go Boilerplate

Package Dependency

Features:

  • Database (postgres) with Encryption at Rest (tink)
    • Derivable encryption key.
    • Rotatable encription key.
    • Blind index as bloom filter for exact match.
    • Outbox pattern (kafka + cloudevent + protobuf).
    • Query-to-code generator (SQLC).
  • HTTP API
    • OpenAPI-to-code generator (oapi-codegen).
    • Auto Load CA & Leaf TLS certificate.
    • mTLS support.
  • Opentelemetry (console, otlphttp, otlpgrpc, and datadog trace provider).
    • Code Generator for auto instrumentation (otelwrap)
  • Plugable log (zap, testing).
    • Embed opentelemetry trace-id + copy logged field to opentelemetry trace.
  • Env config.
  • Dockerized.
  • CI/CD as Code (dagger)

Using as library

The packages under pkg are reusable for importing into other project. Moreover pkg/cmd can be used to instantiate all the packages using environment variable for quick inclusion

Versions with BREAKING CHANGES

  • v0.20.0 introduces major breaking changes as the package structure is completely rewritten