Tired of ads? Enjoy an ad-free experience by signing up.
  • Insights
    This article was written by a TIA community member. Insights pieces undergo the same rigorous editorial process that newsroom-produced articles have.
Karen Kue · · 5 min read

How a framework helps Grab engineers keep up with the company’s rapid growth

software-engineers-meeting

Photo credit: Andor Bujdoso / 123RF

This article was co-authored by Michael Cartmell and is part of Tech in Asia’s content partnership with Grab. Visit their engineering blog here.

Grab’s evolution from a single monolithic application to a microservices-based architecture has come a long way. However, with any technology adoption comes challenges. The new architecture created hurdles around logging, monitoring and instrumentation, and traceability.

As Grab rapidly expands its services and teams, the engineering team is faced with yet another challenge: how do we support exponential growth while maintaining consistency, coordination, and quality?

Our Grab Developer Experience team came up with the following solution: Grab-Kit, a framework for building Go microservices.

A framework to solve it all

Grab-Kit is designed to create a fully functional microservice scaffolding in seconds, allowing engineers to focus on the business logic straight away. It simplifies the creation and operation of microservices, using smart library configuration defaults, automatic initialization, context propagation, and runtime framework configuration. Moreover, it provides standardization of communication across services.

grab-kit-code

We no longer need to spend long hours generating boilerplate code, initializing common libraries, creating dashboards and alarms, or creating data access objects (DAOs). Instead, we can now concentrate on delivering scalable and agile services.

The heart of Grab-Kit

The inspiration behind the framework is Go-Kit, but Grab-Kit goes beyond that. For example, Grab-Kit has added automatic code generation, which saves efforts required in writing boilerplate code for both server and client service sides. While Go-Kit proposes techniques for microservices, there is still a lot of manual work involved in implementing them. In contrast, Grab-Kit actually helps us focus on the business logic by doing this work for us while codifying all best engineering practices around distributed service design.

We’ve presented some of the problems Grab-Kit tries to solve in two categories: standardization and automated dashboard generation.

Standardization

The underlying intention of Grab-Kit is to gain consistency across services in the following components:

Service definitions

Stay ahead in Asia’s tech landscape

You've reached your 2 free content limit for the month. Sign up for free to read the full story.

🏄 For casual readers / 👶 Free

Basic

US$0

Free forever

Get instant access to this article and more every month

0 premium content

Unlimited news briefs

5

5 articles

Ad-free reading experience

Just US$0 per day

⌛Sign up in 20s. No payment details needed.

📖 For learners / 👍 Starter

Lite

US$4.92/month

Billed annually at US$59/year

Get instant access to this article and more every month

4

4 premium content

Unlimited news briefs & articles

Ad-free reading experience

Just US$0.17 per day

Cancel anytime

Our subscriber community includes professionals from these companies:

Stay updated on the go with our mobile app.

Get latest insights with smoother, more personalized experience through TIA mobile app.

Community Writer

Karen Kue

Karen is a Singapore-based technical writer who works at Grab. Her job involves delivering high-quality and relevant content that aims to enhance developer experience.