// the find
apache/dubbo
The java implementation of Apache Dubbo. An RPC and microservice framework.
Apache Dubbo is a Java RPC and microservice framework with ~15 years of production use, primarily in large Chinese internet companies. It handles service discovery, traffic management, load balancing, and observability as a cohesive platform rather than a collection of libraries. If you're building Java microservices and want something more opinionated than Spring Cloud with better support for registry-based service mesh patterns, this is the serious contender.
The Triple protocol is genuinely good — it's gRPC-compatible (you can call Dubbo services with curl or any gRPC client) while also supporting REST, which means you're not locked into a Dubbo-only ecosystem. The traffic management layer is mature: condition routers, affinity routers, and the VirtualService/DestinationRule model borrowed from Istio give you fine-grained routing without running a full sidecar mesh. Load balancer selection (consistent hash, shortest response, adaptive) is pluggable and battle-tested at Alibaba scale. JDK 25 support in 3.3.7 while maintaining JDK 8 compatibility in stable releases shows disciplined backport hygiene.
The documentation is heavily Chinese-first — the English docs lag behind and some sections link to `cn.dubbo.apache.org` even in the English README, which is a real friction point for non-Chinese teams evaluating it. The service registry dependency (Zookeeper, Nacos) is effectively mandatory for anything beyond a toy setup, so you're adding operational complexity before you write a single line of business logic. The custom binary protocol (Dubbo2 TCP) has accumulated sharp edges over a decade: serialization compatibility between versions is a landmine teams have hit in production. The service mesh story with Istio/Envoy is documented but clearly secondary to the native Dubbo control plane, so if you're already invested in a standard mesh you'll be fighting the abstractions.