// the find
gofr-dev/gofr
An opinionated GoLang framework for accelerated microservice development. Built in support for databases and observability.
GoFr is an opinionated Go framework for microservices that bakes in OpenTelemetry tracing, Prometheus metrics, structured logging, health checks, and database migrations out of the box. It targets teams who want a Spring Boot-style 'everything included' experience in Go, particularly for Kubernetes deployments. If you're happy with Go's standard library and just want routing, skip it — this is for people who want the full operational stack pre-wired.
The observability story is genuinely good — traces, metrics, and structured logs are wired in by default with zero configuration, not bolted on as an afterthought. The datasource abstraction covers an unusually wide range (Cassandra, ClickHouse, MongoDB, ArangoDB, SurrealDB, etc.) with health checks and connection pooling handled uniformly. Dynamic log level changes without restart is a practical operational feature that most frameworks make you implement yourself. The circuit breaker on outbound HTTP calls is built into the HTTP client, not a separate library you have to remember to wire in.
The opinionated context type (`*gofr.Context`) means you're committed to GoFr's abstractions throughout your handler code — migrating away later or mixing with standard `net/http` middleware is painful. The framework is relatively young (v1.x) with most production deployments coming from within the original org; community war stories at scale are sparse. gRPC support works but the boilerplate wrapper generation via `gofr-cli wrap-grpc` is a non-standard step that can surprise people used to plain protoc. The response envelope format is fixed — if your API contract requires a custom top-level structure, you're fighting the framework.