Case study · Flipkart
OTA CodePush Platform Migration
Re-architecting a high-traffic OTA delivery pipeline from Azure to GCP with Redis-backed caching and phased zero-downtime cutover.
Software Development Engineer II · 2025
0.2%
Release success rate
—
Critical downtime events
0M+
Monthly bundle fetches
The problem
- —Legacy Azure CodePush paths showed rising P95 bundle latency as release cadence and cohort size grew quarter over quarter.
- —Operational cost on Azure compute + egress climbed with traffic spikes during festival sale events.
- —Mobile clients needed predictable sub-second metadata resolution — cache misses directly impacted update adoption.
The approach
- —Designed GCP Cloud Functions + Redis architecture with metadata hot paths served from memory.
- —Ran shadow traffic and canary cohorts before full cutover — no critical downtime during migration window.
- —Built observability dashboards for cache hit ratio, function cold starts, and rollback triggers.
System flow
High-level architecture
React Native Clients
CDN Edge
GCP Functions
Redis Cache
Bundle Storage
Performance metrics
| Metric | Before | After | Change |
|---|---|---|---|
| Bundle delivery P95 | 820ms | 510ms | -38% |
| Cache hit ratio | 61% | 89% | +28 pts |
| Failed release rate | 2.1% | 0.4% | -81% |
Cost & efficiency
| Area | Before | After | Notes |
|---|---|---|---|
| Monthly infra (OTA path) | ₹4.8L | ₹3.1L | ~35% reduction post-rightsizing |
| Egress per 1M bundles | ₹12.4K | ₹7.9K | CDN + regional caching strategy |
| Incident MTTR | 47 min | 18 min | Improved observability & runbooks |
Implementation snapshot
cache-first bundle resolution
async resolveBundle(appId, platform, version) { const cacheKey = `ota:${appId}:${platform}:${version}`; const cached = await redis.get(cacheKey); if (cached) return JSON.parse(cached); const manifest = await fetchFromStorage(appId, version); await redis.setex(cacheKey, 3600, JSON.stringify(manifest)); return manifest;}Rollout phases
01
Assess & map
Traffic profiling, Azure cost baseline, failure-mode analysis.
02
GCP + Redis
Functions, cache layer, CI/CD parity across staging/prod.
03
Phased cutover
Shadow → 5% → 25% → 100% cohort migration.
04
Tune & operate
Cache warming, on-call runbooks, cost reviews.
Tech stack
React NativeNext.jsTypeScriptGCP Cloud FunctionsRedisAzure (legacy)CI/CDJest