How Didi Engineered a Scalable Large‑Scale Microservice Framework with Go
In this detailed talk, Didi senior engineer Du Huan explains the challenges of building large microservice frameworks, outlines design principles such as the Rule of Least Power, describes the evolution of service frameworks, and shares concrete implementation techniques and business benefits of Didi's Go‑based platform.
Didi senior engineer Du Huan shares a deep dive on “Large Microservice Framework Design Practice”.
He introduced himself, explained Didi’s decision to unify its backend stack by migrating many PHP and Java services to Go, and noted that today thousands of services run on Go within the company.
Discovering Problems: Pain Points in Service Development
Complex business development faces tight schedules, large teams, rapid growth, uneven developer skill levels, and a plethora of internal tools and SDKs that must be integrated with minimal friction.
To keep fast, aggressive development while maintaining quality, a framework is needed to abstract away boilerplate and enforce stability.
From History to Evolution of Service Frameworks
The service framework landscape began with PHP in 1995, moved through ASP.NET (2002), Django (2003), Ruby on Rails, and exploded with MVC frameworks after 2005. The rise of Web 2.0 shifted rendering to the front‑end, turning back‑ends into API gateways and spawning microservice architectures.
Key milestones include Sinatra (2007), Thrift (2007), Protobuf (2008), Docker, and Istio (2018), each pushing the abstraction of services closer to an operating‑system‑like layer.
Design Principles for Large‑Scale Microservice Frameworks
The core idea is to treat the framework as an “operating system” that hides I/O complexities, allowing developers to focus on business logic while the framework handles reliability, retries, timeouts, and service discovery.
Adhering to Tim Berners‑Lee’s “Rule of Least Power”, the framework only implements essential, stable abstractions and avoids over‑engineering.
Key Design Points
Provide essential microservice capabilities (service governance, horizontal scaling) by reusing existing internal and external tools.
Offer a thin toolchain that requires no extra effort from business code.
Use composition over inheritance and limited interceptor extensions.
Expose a unified I/O interface so that underlying drivers can be swapped transparently.
Implementation Details
The framework generates stub code from IDL definitions, inserts interceptors via AST manipulation, and uses reflection at startup to build routing tables.
It wraps RPC protocols with a proxy layer to inject context, logging, and error handling without changing business code.
A low‑precision timer pool replaces per‑request timers to reduce overhead while still supporting millisecond‑level timeouts.
Fail‑fast and automatic node removal protect the system from cascading failures.
Business Benefits
Over 100 Go engineers built a fully operational system in a few months, achieving high development efficiency, seamless multi‑region deployment, and transparent upgrades.
The framework’s reliability features eliminated single‑point‑of‑failure‑induced snowball effects, and all monitoring, logging, and service registration were handled automatically.
Version Management and Future Directions
All framework libraries are upgraded together to avoid version fragmentation, treating the framework as an operating system with stable interfaces.
Future work includes expanding toolchains and deeper integration with internal infrastructure.
Q&A
Questions covered process isolation (single‑process Go services with GOMAXPROCS), interface management via IDL, timeout design, and handling of external dependencies such as Google Maps.
Overall, the talk provides a comprehensive view of designing, implementing, and operating a large‑scale microservice framework in a high‑throughput environment.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
21CTO
21CTO (21CTO.com) offers developers community, training, and services, making it your go‑to learning and service platform.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
