ایک وقف شدہ search engine استعمال کریں — Elasticsearch/OpenSearch جو ایک inverted index پر بنا ہے — جو CDC کے ذریعے آپ کے source DB سے feed ہو، اور scale کے لیے index کو shard کریں۔ آپ کا primary database (Postgres/MySQL) سینکڑوں ملین rows پر relevance-ranked text search نہیں کر سکتا؛ ایک LIKE '%term%' ہر row scan کرتا ہے۔ ایک search engine مسئلے کو الٹ دیتا ہے۔
Source DB ─▶ CDC (Debezium) ─▶ Kafka ─▶ Indexer ─▶ Elasticsearch/OpenSearch
(Postgres) (change stream) ├─ Shard 0 (inverted index) + replicas
├─ Shard 1
Query ─▶ Coordinator ─▶ scatter to shards ─▶ gather ─┴─ Shard N ── ranked by BM25
