Flipkart Marketplace Platform · View 17 of 25 · 5 · Runtime
Decisions
- Search never queries the catalog database; it reads an index built from the change log, so a catalog outage does not stop browsing
- Hybrid retrieval — BM25 plus vector kNN in one OpenSearch cluster — avoids running a second vector database for the same corpus
- Availability is applied as a query-time filter from Redis rather than baked into the index, because stock changes far faster than the index can be rebuilt
Numbers
- Index freshness p95 30 seconds from catalog change to searchable
- Ranking model budget 40 ms at p99; anything slower is not deployed
- Zero-downtime index swaps by alias, so a bad rebuild is a pointer change to undo
Risks
- Embedding cost scales with catalog churn, not catalog size — a bulk feed re-upload is the expensive event
- Ranking and Buy Box selection interact: a model that favours cheap listings can starve reliable sellers, so seller SLA is a ranking feature
- Canary at 1% catches latency regressions but not slow relevance decay; a weekly human relevance review is part of the design