# Building Grab’s Experimentation Platform

[Grab](https://yomu.fyi/company/grab) · Abeesh Thomas · Jul 13, 2018

**Type:** Problem & solution

## Summary

Grab built its internal Experimentation Platform (ExP) to replace a manual, expensive testing process that required bespoke meetings, custom logging pipelines, and service modifications for each experiment. ExP provides a unified infrastructure featuring a centralized management UI, automated real-time data streaming to S3, and SDKs for Android, iOS, and Go. The platform leverages JSON-based experiment definitions delivered through dynamic configuration management, enabling client-side evaluation without costly network calls. It addresses marketplace network effects and inter-experiment interference through mechanisms such as geo-temporal segmentation and domain-layer models. The platform has scaled to run approximately 25 concurrent experiments while computing roughly 2,500 metrics and 50,000 experiment-metric combinations daily.

## Context

Early experimentation at Grab was painful, expensive, and time-consuming, requiring ad-hoc alignment meetings between product managers, analysts, data scientists, and engineers to manually design experiments, modify services, and build custom logging pipelines.

## Approach / What changed

Grab engineered ExP, a centralized experimentation platform featuring client and server SDKs (Android, iOS, Golang) that evaluate JSON-based experiment configurations locally via dynamic configuration delivery, supported by automated real-time S3 streaming pipelines, geo-temporal segmentation, and multiple assignment strategies like randomized sampling and time-slicing.

## Takeaways

- Experiment definitions are structured as formal JSON documents delivered via dynamic configuration management, allowing SDKs to assign treatments deterministically without network calls.
- To handle multi-sided marketplace network effects and inter-experiment interference, ExP uses geo-temporal segmentation alongside a mechanism similar to Google's Domains and Layers combined with an expert validation system.
- ExP supports diverse assignment strategies including uniform or weighted randomized sampling by user ID and time-sliced allocations with bias minimization for algorithmic testing.

**Tags:** [Architecture](https://yomu.fyi/topic/architecture), [Data Pipelines](https://yomu.fyi/topic/data-pipelines), [Go](https://yomu.fyi/topic/go), [Scalability](https://yomu.fyi/topic/scalability), [Testing](https://yomu.fyi/topic/testing)

[Read original post](https://engineering.grab.com/building-grab-s-experimentation-platform)
