# How to Go from a Quick Idea to an Essential Feature in Four Steps

[Grab](https://yomu.fyi/company/grab) · Da Huang · May 16, 2017

**Type:** Problem & solution

## Summary

Grab engineered an in-app messaging platform, GrabChat, to help drivers and passengers coordinate pickups across Southeast Asian markets characterized by weak 2G connectivity and high packet loss. The team developed an in-house TCP messaging architecture consisting of a TCP gateway named Gundam and a message dispatcher named Hermes connected to internal backend services over HTTPS. To protect backend server resources from resend loops during poor connection states, the communication protocol adopts a "server only push once" model that delegates retry handling to the client. Data science evaluations using a pre-trained cancellation prediction model confirmed that GrabChat adoption correlated with reduced booking cancellations. Following early usage feedback, the team further iterated on the feature by introducing pre-written message templates to reduce driver distraction on the road.

## Context

Drivers and passengers across Southeast Asia faced communication challenges due to rapidly changing cities and unstable internet infrastructure, including congested 2G networks with high packet loss.

## Approach / What changed

Grab built a dedicated in-app messaging service using a stand-alone TCP layer, a custom TCP gateway and dispatcher, a client-driven retry protocol, and template messaging to minimize driver distraction.

## Takeaways

- Implementing a "server only push once" protocol delegates message-loss retries and heartbeat monitoring to clients, preventing server exhaustion caused by endless resend loops on poor networks.
- GrabChat separates concerns by handling client connections through dedicated TCP gateways and dispatchers while exposing HTTPS interfaces for internal service integration.
- Data scientists evaluated the feature's business impact by using a baseline machine learning cancellation prediction model trained on pre-launch data to compare predicted against actual post-launch cancellations.

**Tags:** [Architecture](https://yomu.fyi/topic/architecture), [Machine Learning](https://yomu.fyi/topic/machine-learning), [Reliability](https://yomu.fyi/topic/reliability)

[Read original post](https://engineering.grab.com/how-to-go-from-a-quick-idea-to-an-essential-feature-in-four-steps)
