GrabKaren KueProblem & solution
Introducing Grab-Kit: Distributed Service Design at Grab
Summary
As Grab migrated from a monolith to microservices, maintaining consistency, coordination, and code quality across rapidly expanding teams became a major engineering challenge. To address this, the Developer Experience team built Grab-Kit, a Go framework that automates service scaffolding, code generation, and distributed system design patterns. The framework uses Protocol Buffer definition files as a single source of truth to generate data transfer objects, communication bindings, and standardized middleware for logging and profiling. Grab-Kit also features declarative metrics definitions that synchronize with the DataDog API to build and update service dashboards automatically. Adopting the framework reduced development time for creating new services by up to 70% in teams such as GrabFood while improving overall system stability.
Context
Transitioning from a monolithic application to a microservices architecture created challenges in maintaining consistency, coordination, and quality across exponential growth, resulting in inconsistent APIs, fragmented logging formats, and time-consuming manual dashboard creation.
Approach / What changed
Grab developed Grab-Kit, a Go microservice framework that automates scaffolding, uses .proto files as a single source of truth for code and DTO generation, standardizes middleware stacks, and automates DataDog dashboard generation using declarative metrics.yaml files.
Takeaways
Grab-Kit treats generated .proto files as the single source of truth to automatically produce Go data transfer objects (DTOs), boilerplate code, and protobuf bindings.
A standardized middleware stack automatically instruments logging, stats, panic recovery with compacted stack traces, and developer-mode CPU profiling and execution tracing.
The grab-kit dash tool parses declarative metrics.yaml files to automatically create and update modular DataDog dashboards for services and their upstream dependencies.
Source and freshness
- Source
- engineering.grab.com
- Published
- Added to Yomu
- Last updated
Summaries are generated from the original by a language model. Check the original before relying on it.
Keep reading
Related reading
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
The best engineering reads, once a week
One useful email. Unsubscribe anytime.