Folosește un motor de căutare dedicat — Elasticsearch/OpenSearch construit pe un index inversat — alimentat din DB-ul sursă prin CDC, și fă sharding pe index pentru scară. Baza ta de date primară (Postgres/MySQL) nu poate face căutare de text ordonată după relevanță peste sute de milioane de rânduri; un LIKE '%term%' scanează fiecare rând. Un motor de căutare inversează problema.
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
