// the find
go-chassis/go-chassis
a cloud native application framework for Go with rich eco-system
Go-chassis is a Go microservice framework out of Huawei's ServiceComb ecosystem that bundles service discovery, load balancing, circuit breaking, rate limiting, and tracing behind a protocol-agnostic handler chain. It's for teams building HTTP/gRPC microservices who want resilience features wired in without assembling Envoy/Istio themselves, and it's most at home if you're already touching the ServiceComb or Huawei Cloud stack.
The handler chain is a real abstraction, not just marketing copy - each handler can inspect the result of the one before it, so circuit breaking, tracing, and auth compose without threading extra state through business logic by hand. The core (core/invocation) is protocol-agnostic, so the same middleware stack applies to both HTTP and gRPC calls - switching transport doesn't mean rebuilding your resilience layer. Test discipline is solid: nearly every file under core/ has a matching _test.go, and CI runs golangci-lint plus CodeQL rather than just a build check. Registry backends are pluggable (Service Center, Kubernetes) with both client-side and server-side discovery, so it isn't a one-way lock to a single control plane.
Most of the 'batteries included' value assumes you're pairing this with ServiceComb's Service Center and the servicecomb-mesher sidecar - outside that ecosystem you end up composing the pieces yourself anyway, which erases a lot of the pitch. The committer list is just two names despite the scope of the codebase and its use at Huawei-scale, which is a real bus-factor concern if you're putting production traffic through it. Documentation is scattered across readthedocs, a Chinese README, and a partially migrated examples repo - the README itself flags that in-repo examples are moving elsewhere, which means some of what ships in the repo is already stale. The architecture is heavier than typical Go style - handler chains, control panels, traffic markers, router rules - so if you just want a circuit breaker and a load balancer you're taking on a lot of framework to get there, more than something like go-kit would ask of you.