# apache/dubbo-go

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/apache-dubbo-go).**

4,938 stars · 1,014 forks · Go · Apache-2.0

## Links

- GitHub: https://github.com/apache/dubbo-go
- Homepage: https://dubbo.apache.org/
- awesome-repositories: https://awesome-repositories.com/repository/apache-dubbo-go.md

## Topics

`go` `http2` `microservices` `rpc` `service-mesh`

## Description

Apache Dubbo Go is a Go language implementation of the Apache Dubbo framework designed for building high-performance microservices. It serves as a cross-language RPC framework and microservices communication layer that enables remote procedure calls between services written in different programming languages.

The framework functions as a service governance toolset and a distributed service mesh proxy, allowing data planes to connect with external control planes in proxy or proxyless modes. It specifically provides a compatibility layer to facilitate communication between Go and Java-based services through language-agnostic definitions and standardized data encoding.

The system covers a broad range of distributed capabilities, including dynamic service discovery, strategy-based load balancing, and traffic management via circuit breakers and rate limiting. It incorporates observability through distributed request tracing and performance metrics, while ensuring security with transport layer encryption and identity-based access control.

Developer productivity is supported via a command-line interface for application bootstrapping and automated RPC stub generation from interface definitions.

## Tags

### Networking & Communication

- [Cross-Language RPC Frameworks](https://awesome-repositories.com/f/networking-communication/cross-language-rpc-frameworks.md) — Facilitates high-performance remote procedure calls between Go and Java services using standardized data encoding.
- [Remote Procedure Call Frameworks](https://awesome-repositories.com/f/networking-communication/remote-procedure-call-frameworks.md) — Implements a high-performance RPC framework for efficient data exchange between distributed microservices. ([source](https://dubbo.apache.org/en/overview/home/))
- [Microservices Communications](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/distributed-computing/communication-protocols/application-interface-standards/microservices-communications.md) — Handles service registration, health checking, and request tracing across distributed microservice clusters.
- [Registry-Based Service Discovery](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/distributed-systems-coordination/service-discovery-mechanisms/registry-based-service-discovery.md) — Locates available service providers by querying a centralized registry instead of using hardcoded network addresses.
- [RPC Frameworks](https://awesome-repositories.com/f/networking-communication/rpc-frameworks.md) — Provides a high-performance framework for executing remote procedures across network nodes.
- [Dubbo Integration](https://awesome-repositories.com/f/networking-communication/rpc-frameworks/dubbo-integration.md) — Implements the Apache Dubbo framework in Go for building high-performance microservices.
- [Service Governance](https://awesome-repositories.com/f/networking-communication/service-governance.md) — Provides a toolset for managing service discovery, load balancing, and traffic routing in distributed architectures.
- [Proxyless Integrations](https://awesome-repositories.com/f/networking-communication/service-meshes/proxyless-integrations.md) — Enables data planes to connect with external control planes in both proxy and proxyless modes. ([source](https://dubbo.apache.org/))
- [Correlation Tracing](https://awesome-repositories.com/f/networking-communication/communication-protocols-architectures/request-processing-architectures/request-processing/middleware-based-request-pipelines/correlation-tracing.md) — Injects correlation identifiers into service calls to track the flow of a single request across multiple microservices.
- [Multi-Protocol Transport Layers](https://awesome-repositories.com/f/networking-communication/multi-protocol-transport-layers.md) — Routes communication over a single port and switches between different wire formats based on configuration.
- [Service Mesh Networking](https://awesome-repositories.com/f/networking-communication/network-infrastructure-routing/service-mesh-networking.md) — Protects inter-service communication using transport layer encryption and identity-based access control.
- [Service Metadata Management](https://awesome-repositories.com/f/networking-communication/rpc-servers/service-metadata-management.md) — Manages service definitions and metadata to support advanced governance and precise request routing. ([source](https://github.com/apache/dubbo-go/blob/main/CHANGELOG.md))
- [Single-Port Multi-Protocol Support](https://awesome-repositories.com/f/networking-communication/single-port-multi-protocol-support.md) — Publishes multiple communication standards on a single port to support various network protocols for service interaction. ([source](https://dubbo.apache.org/))
- [Circuit Breakers](https://awesome-repositories.com/f/networking-communication/traffic-management-gateways/circuit-breakers.md) — Prevents cascading failures by monitoring error rates and temporarily blocking requests to unhealthy service providers.
- [Dynamic Routing](https://awesome-repositories.com/f/networking-communication/traffic-routing/dynamic-routing.md) — Steers traffic based on rules, scripts, or tags to enable canary releases and grayscale deployments. ([source](https://dubbo.apache.org/))
- [Transport Protocol Switching](https://awesome-repositories.com/f/networking-communication/transport-layers/udp-transport-implementations/transport-protocol-switching.md) — Allows toggling between different communication protocols on a single port using simple configuration settings. ([source](https://dubbo.apache.org/))

### DevOps & Infrastructure

- [Load Balancing](https://awesome-repositories.com/f/devops-infrastructure/load-balancing.md) — Distributes outgoing requests across multiple service providers using algorithms like round-robin and consistent hashing. ([source](https://cdn.jsdelivr.net/gh/apache/dubbo-go@main/README.md))
- [Load Balancing Strategies](https://awesome-repositories.com/f/devops-infrastructure/load-balancing-strategies.md) — Distributes outgoing requests across multiple service instances using interchangeable algorithms like round-robin or consistent hashing.
- [Microservice Traffic Management](https://awesome-repositories.com/f/devops-infrastructure/microservice-traffic-management.md) — Controls request flow through load balancing, circuit breakers, and dynamic routing to ensure system resilience.
- [Service Governance Control Planes](https://awesome-repositories.com/f/devops-infrastructure/service-governance-control-planes.md) — Coordinates service registration, health checks, and metadata management across a cluster of distributed application instances. ([source](https://dubbo.apache.org/docs/dubbo-go/))
- [Dynamic Configuration Updates](https://awesome-repositories.com/f/devops-infrastructure/dynamic-configuration-updates.md) — Updates system settings at runtime using external configuration centers without requiring an application restart. ([source](https://github.com/apache/dubbo-go/blob/main/CHANGELOG.md))
- [High Availability Services](https://awesome-repositories.com/f/devops-infrastructure/high-availability-services.md) — Ensures service availability by implementing failover, failfast, and broadcast routing strategies during interruptions. ([source](https://cdn.jsdelivr.net/gh/apache/dubbo-go@main/README.md))
- [Data Plane Implementations](https://awesome-repositories.com/f/devops-infrastructure/service-governance-control-planes/data-plane-implementations.md) — Acts as a data plane implementation connecting services to an external control plane for centralized governance.
- [Service Lifecycle Management](https://awesome-repositories.com/f/devops-infrastructure/service-lifecycle-management.md) — Coordinates graceful shutdowns and offline transitions to ensure requests finish processing before service exit. ([source](https://github.com/apache/dubbo-go/blob/main/CHANGELOG.md))

### Programming Languages & Runtimes

- [Compatibility Layers](https://awesome-repositories.com/f/programming-languages-runtimes/java-interoperability/compatibility-layers.md) — Handles Java-specific data types and exceptions to enable seamless communication between Go and Java-based services. ([source](https://github.com/apache/dubbo-go/blob/main/CHANGELOG.md))
- [Language Bridges](https://awesome-repositories.com/f/programming-languages-runtimes/language-bridges.md) — Maps language-specific data types and exceptions to enable seamless communication between services written in different languages.
- [Language Interoperability](https://awesome-repositories.com/f/programming-languages-runtimes/language-interoperability.md) — Enables interaction between services written in different programming languages using language-agnostic definitions and standardized encoding. ([source](https://dubbo.apache.org/))

### Software Engineering & Architecture

- [Dynamic Service Discovery](https://awesome-repositories.com/f/software-engineering-architecture/dynamic-service-discovery.md) — Locates available service providers in real-time using registry adapters, local file systems, or custom extensions. ([source](https://dubbo.apache.org/en/overview/home/))
- [Polyglot Microservices](https://awesome-repositories.com/f/software-engineering-architecture/polyglot-microservices.md) — Enables communication between services written in different languages through standardized data exchange and shared interfaces.
- [Environment Abstraction Layers](https://awesome-repositories.com/f/software-engineering-architecture/environment-abstraction-layers.md) — Decouples application logic from the underlying execution environment, supporting VMs, containers, and service meshes. ([source](https://dubbo.apache.org/))
- [Pluggable Interceptor Chains](https://awesome-repositories.com/f/software-engineering-architecture/interceptor-sequences/pluggable-interceptor-chains.md) — Executes a sequence of customizable interceptors for request and response processing to extend framework behavior.
- [Generic Invocations](https://awesome-repositories.com/f/software-engineering-architecture/service-locators/remote-service-invocations/generic-invocations.md) — Allows calling remote methods without requiring the specific interface definition to be present on the client side. ([source](https://github.com/apache/dubbo-go/blob/main/CHANGELOG.md))
- [Traffic Flow Control](https://awesome-repositories.com/f/software-engineering-architecture/traffic-flow-control.md) — Protects services from overload through TPS capping, execution limits, and rate limiting mechanisms. ([source](https://github.com/apache/dubbo-go/blob/main/CHANGELOG.md))

### System Administration & Monitoring

- [Distributed Observability Systems](https://awesome-repositories.com/f/system-administration-monitoring/distributed-observability-systems.md) — Provides unified observability for distributed systems through integrated metrics, tracing, and performance monitoring.
- [Configuration Hot-Reloading](https://awesome-repositories.com/f/system-administration-monitoring/configuration-hot-reloading.md) — Updates application settings at runtime using external configuration centers without requiring a process restart.
- [Metric Collection](https://awesome-repositories.com/f/system-administration-monitoring/metric-collection.md) — Collects request totals, success rates, and response time quantiles via sliding windows to track efficiency. ([source](https://github.com/apache/dubbo-go/blob/main/CHANGELOG.md))
- [Distributed Tracing](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/observability-platforms/distributed-tracing-execution-analysis/distributed-tracing.md) — Tracks single requests across multiple services to identify performance bottlenecks and failures. ([source](https://dubbo.apache.org/en/overview/home/))
- [Service Health Monitoring](https://awesome-repositories.com/f/system-administration-monitoring/service-health-monitoring.md) — Visualizes service running status and performance using metrics, distributed tracing, and access logs. ([source](https://cdn.jsdelivr.net/gh/apache/dubbo-go@main/README.md))

### Content Management & Publishing

- [Invocation & Routing Extensions](https://awesome-repositories.com/f/content-management-publishing/documentation-metadata-configurations/plugin-and-theme-metadata/extensible-frameworks/invocation-routing-extensions.md) — Provides a plugin system to customize how remote procedure calls are invoked and routed. ([source](https://dubbo.apache.org/))

### Data & Databases

- [RPC Stub Generation](https://awesome-repositories.com/f/data-databases/openapi-processors/server-stub-generation/rpc-stub-generation.md) — Produces client and server code from interface definitions to automate service contract implementation. ([source](https://cdn.jsdelivr.net/gh/apache/dubbo-go@main/README.md))

### Development Tools & Productivity

- [Interface Definition Code Generation](https://awesome-repositories.com/f/development-tools-productivity/interface-definition-code-generation.md) — Produces client and server stubs from shared interface definitions to automate the implementation of service contracts.

### Security & Cryptography

- [Service Communication Security](https://awesome-repositories.com/f/security-cryptography/service-communication-security.md) — Establishes a zero-trust network using transport encryption and identity-based permission verification. ([source](https://github.com/apache/dubbo-go/blob/main/CHANGELOG.md))

### Part of an Awesome List

- [Messaging and RPC](https://awesome-repositories.com/f/awesome-lists/data/messaging-and-rpc.md) — A Go implementation of the Dubbo framework for service interoperability.
- [RPC Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/rpc-frameworks.md) — Go implementation of the Dubbo RPC framework.
