Why Douyu Chose Go to Build the Jupiter Microservice Framework

Douyu's Go team explains how the Jupiter framework was born from internal needs, its evolution through multi‑data‑center and cloud‑native transitions, its differences from other Go microservice solutions, and the company's open‑source strategy and future plans.

Programmer DD
Programmer DD
Programmer DD
Why Douyu Chose Go to Build the Jupiter Microservice Framework

Jupiter's Birth

Jupiter originated from Douyu's internal Golang microservice framework, refined over three years and validated by hundreds of services, now at version 0.5.0, though some custom features remain unreleased.

Douyu chose to build its own framework instead of adopting existing ones because early reliance on open‑source libraries revealed functional gaps and bugs that required heavy customization, leading to a unified RPC solution that evolved into Jupiter.

Compared with mature frameworks like Spring Cloud and Dubbo, Jupiter is not perfect but leverages Go‑native ecosystems such as gRPC, ETCD, Prometheus, and Jaeger, and integrates easily with echo, gin, and other RPC frameworks, making it well‑suited for Douyu's needs.

Why Choose Go

Go, released by Google in 2009, offers native high‑concurrency support ideal for cloud‑native container environments. Douyu migrated from PHP to a multi‑stack architecture (PHP, Go, Java, C++) around 2016, attracted by Go's concurrency and containerization advantages.

Transition challenges included moving from a weak‑typed to a strong‑typed language, library scarcity, and package management issues, but Go's simplicity reduced refactoring costs.

Jupiter was created to improve Go development efficiency and governance, later supporting multi‑data‑center, cloud, container, and chaos engineering needs, with the Juno platform providing complementary governance capabilities.

Differences from Other Microservice Frameworks

Jupiter focuses more on service governance than pure RPC, offering deep integration with echo, gin, and custom RPC solutions, and aims to simplify RPC while enhancing governance features.

Beyond RPC, Jupiter addresses caching, storage, message queues, task orchestration, observability (logging, metrics, tracing), unified error codes, profiling, dynamic configuration, and other governance dimensions.

For cross‑language communication, Douyu uses Dubbo‑gRPC on the Java side and a multi‑registration key approach on the Go side to interoperate with Dubbo, though they seek a more elegant solution.

The Significance of Microservice Architecture

Microservices help Douyu handle growing business scale and organizational changes, improving maintainability, high availability, and scalability by defining clear service boundaries and SLAs.

When a monolithic codebase exceeds the capacity of a two‑pizza team, splitting into microservices becomes advantageous.

Douyu's Open‑Source Commitment

Douyu opened Jupiter and the Juno governance platform to share their service governance experience, receiving valuable community feedback and planning to open more internal libraries in the future.

The team aims to continue enhancing Juno's configuration, registration, monitoring, and governance centers, making them compatible with Jupiter and other open‑source frameworks.

Future Outlook

Douyu plans to further open‑source internal projects such as a memory‑based object store, high‑concurrency Redis client, and full‑link stress testing tools, integrating them into the Jupiter ecosystem.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

MicroservicesGoservice governanceJupiter
Programmer DD
Written by

Programmer DD

A tinkering programmer and author of "Spring Cloud Microservices in Action"

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.