Dùng một search engine chuyên dụng — Elasticsearch/OpenSearch xây trên inverted index — được nạp từ source DB qua CDC, và shard index để scale. Database chính (Postgres/MySQL) của bạn không thể làm text search xếp hạng theo relevance trên hàng trăm triệu dòng; một LIKE '%term%' scan mọi dòng. Search engine đảo ngược bài toán.
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
