Scaling OpenSearch Past the Breaking Point: Sub-Second Search at 10× Catalogue Growth
Rebuilt the search and discovery layer for a luxury e-commerce platform by migrating from legacy RDBMS to OpenSearch with multilingual support and real-time catalogue sync.
What we were solving
High SKU churn, promotional pricing, and multiple storefront languages across the GCC and Europe.
- Full-text queries against relational tables degraded as catalogues grew past millions of rows.
- Merchandising updates lagged in search results, hurting campaign conversion.
- Transliteration and mixed-language queries returned poor relevance scores.
What we built
- Modelled products, attributes, and availability as denormalised search documents.
- Used CDC streams so inventory and price changes appear in search within seconds.
- Tuned analysers per language and layered business boosts for campaigns.
Architecture notes for your engineers
- Bulk reindex strategy with blue/green aliases to avoid customer-facing downtime.
Key results
- 12× faster queries at p95 (4.2s → 0.35s)
- Real-time data consistency via CDC
- Multilingual support across 12+ languages
- Scalable search foundation
What it was built on
Representative tools and patterns — exact vendors vary per client environment.
Search
Data movement
Serving
What we'd tell the next team
- Search is a data product - treat schema migrations like app releases.
- Measure p95 and zero-result rate, not just average latency.
- Run shadow queries in prod before cutover; relevance regressions are subtle.
Questions this engagement anticipated
Why CDC instead of nightly batch?
Campaign pricing and inventory accuracy directly affect conversion - near-real-time sync keeps merchandising promises aligned with what shoppers see in search.
What multilingual pitfalls were addressed?
Transliteration and mixed-language queries required tuned analysers and layered boosts so relevance stayed stable across storefront languages.
What actually breaks first when a catalogue scales 10×?
Relevance tuning built for a small catalogue degrades quietly before latency does - zero-result rate and p95 query time crept up long before anything looked broken on a dashboard, which is why both were tracked explicitly during scale-up.
Go deeper on the thinking
This is one of several case studies on data engineering & legacy migrations.
See the rest of the cluster →Compare your situation to this case.
Bring your constraints - environment, timeline, and budget. We scope before we quote.