# An elegant platform

[Grab](https://yomu.fyi/company/grab) · Fabrice Harbulot · Nov 30, 2023

**Type:** Problem & solution

## Summary

Grab’s Coban real-time data streaming team initially relied on direct Terraform merge requests for managing self-served resources like Kafka topics and CDC pipelines. This pure Infrastructure-as-Code workflow faced challenges with CI pipeline failures from manual errors, security risks from lacking access controls, and platform team review bottlenecks. To resolve this, Coban implemented a three-tier control plane comprising the Coban UI, a Go backend named Heimdall, and a Git storage and provisioner repository named Khone. Heimdall translates user form submissions into validated merge requests containing Terraform and metadata files, polling Khone's CI status and alerting users. This architecture abstracts infrastructure code behind a graphical self-service portal while preserving underlying Git auditing and automation.

## Context

Grab's initial self-service model required users to submit raw Terraform merge requests, which caused CI failures from human error, lacked IAM guardrails, required Coban engineers to review all requests, and excluded engineers unfamiliar with Terraform.

## Approach / What changed

The team built a three-tier control plane consisting of Coban UI (a React frontend), Heimdall (a Go backend that validates inputs, aggregates metadata, and generates merge requests), and Khone (a Git storage and provisioner repository executing Terraform CI pipelines).

## Takeaways

- Khone acts as the single persistent storage and provisioner layer, using CI pipelines to plan and apply Terraform changes.
- Heimdall automatically approves and merges staging requests, whereas production resource changes require approval from a designated code owner on the user's team.
- Beyond provisioning, Heimdall centralizes metadata from monitoring tools, Kafka consumer groups, schema registries, and configuration platforms to serve external APIs.

**Tags:** [Architecture](https://yomu.fyi/topic/architecture), [CI/CD](https://yomu.fyi/topic/ci-cd), [Developer Experience](https://yomu.fyi/topic/developer-experience), [Kafka](https://yomu.fyi/topic/kafka), [Streaming](https://yomu.fyi/topic/streaming)

[Read original post](https://engineering.grab.com/an-elegant-platform)
