Grab
Southeast Asia's super-app
Grab Architecture Blueprint
Click ▶ RUN to animate active particle streams across microservices
How Traffic Flows Through Grab
1. Ingress & Edge Routing
User requests arrive at the edge network. Global CDNs cache static assets and media. API Gateways terminate TLS, validate JWT authentication tokens, enforce token-bucket rate limits, and scrub malicious bot traffic before forwarding to internal services.
2. Microservice Processing
Stateless domain services execute core business logic. Microservices communicate via high-performance internal gRPC/REST APIs and autoscaling worker pods, ensuring that high load on one domain never exhausts compute resources of another.
3. In-Memory Caching & Storage
Read-heavy traffic is served from in-memory Redis clusters with sub-millisecond latencies, protecting primary databases. Persistent databases (PostgreSQL, Cassandra, DynamoDB) maintain ACID consistency for financial ledgers, user accounts, and immutable state records.
4. Asynchronous Event Streams
Heavy operations (notifications, audit logging, analytics, ML training, fan-out delivery) are decoupled into durable event logs like Kafka and SQS. This prevents user-facing requests from blocking on slow external networks.
Study Grab's database schemas, capacity math & production contracts
Beyond the visual blueprint, explore the exhaustive 7-section engineering whitepaper with real DDL schemas, API endpoints, failure mitigation matrices, and 45-minute FAANG interview scripts.
High-Availability Architecture at Grab
Handling high concurrency spikes while maintaining sub-50ms latency and strict state consistency in the ride domain.
Stateless microservices fronted by multi-region load balancers, backed by partitioned Redis caching and asynchronous Kafka event decoupling.
⚖️ Architectural Trade-Offs & Decisions
Why the engineering team chose this specific stack over competing alternatives
Decoupling services allows independent autoscaling during traffic spikes, prevents a single service failure from crashing the entire platform, and enables multiple teams to deploy code autonomously.
Cache Stampede Resilience at Grab
High-traffic cache key eviction previously caused hundreds of concurrent requests to overwhelm the database.
Lack of mutex locking during cache misses allowed a thundering herd to bypass the cache layer directly into the database.
Implemented distributed mutex locks (Redlock) and probabilistic early expiration (XFetch) to refresh cache keys before expiration.
📋 Complete Microservice Specifications
Every service in the Grab ecosystem with production tech stacks and failure impact
| Component | Tier / Layer | Tech Stack | Production Function | Status / Chaos |
|---|---|---|---|---|
| Client Application | CLIENT | React NativeFlutteriOSAndroid | Native mobile and web applications initiating user requests | |
| API Gateway | GATEWAY | EnvoyJWTWAF | Kong/Envoy gateway handling auth, rate limiting, and request routing | |
| Load Balancer | LB | AWS ALBHAProxy | High-availability L7 load balancer distributing traffic across availability zones | |
| Grab Core Service | SERVICE | GogRPCJava | Primary business logic engine coordinating ride operations | |
| Auth & User Service | SERVICE | Node.jsOAuth2 | Manages user accounts, session tokens, security credentials, and ACLs | |
| Redis In-Memory Cache | CACHE | Redis Cluster | In-memory cache for hot session data, active states, and sub-millisecond reads | |
| Message Stream Queue | QUEUE | Apache KafkaRabbitMQ | Asynchronous event stream decoupling heavy background processing | |
| Distributed Database | DATABASE | PostgreSQLCockroachDB | Persistent transactional database maintaining immutable state records | |
| Global Edge CDN | CDN | CloudflareAkamai | Edge CDN points of presence caching static assets and media globally |