// the find
evrone/go-clean-template
Clean Architecture template for Golang services
A Go service template demonstrating Clean Architecture with four transport layers (REST, gRPC, AMQP RPC, NATS RPC) and three toy domains. Aimed at Go developers who want a reference implementation of Uncle Bob's layered architecture before starting a new microservice.
The transport-agnostic usecase layer is the real value here — business logic imports nothing from the outer layer, so swapping Fiber for net/http or Postgres for another store doesn't cascade through the codebase. Having all four transports implemented for the same three domains makes it genuinely useful as a comparison reference, not just a hello-world. The DI approach is manual and explicit rather than magic-framework-driven, which is appropriate for Go. Integration tests run as a separate container against real dependencies, not mocks.
Four transports at once is overkill for most services — most teams will delete three of them immediately, and the template doesn't guide that pruning. The three domains (auth, tasks, translation) are independent toyboxes with no meaningful interaction, so you learn nothing about how the architecture handles cross-domain logic or shared aggregates. The migration history has timestamps from 2021 sitting next to ones from 2026, suggesting the template was partially reworked without cleaning up the original scaffolding. Fiber is a non-standard choice for a reference template — teams building microservices that need to interop with Go's net/http ecosystem will have to undo that decision from the start.