Design: Search and Metadata System
Design covers search functionality and metadata management for content items. Out of scope are user authentication, content creation UI, and analytics.
Functional Requirements
Non-Functional Requirements
Jump into concepts and practice - no test required
Client | v API Gateway / Search Service | +--> Cache (Redis) | +--> Search Engine (Elasticsearch Cluster) | +--> Metadata DB (PostgreSQL Cluster) Indexing Pipeline: Metadata DB --> Change Events --> Indexer --> Search Engine
title = 'Introduction to Cats' shows a title, which is metadata describing content. Others are config or sensitive data.title = 'Introduction to Cats' -> Option A"apple" if metadata contains {"title": "apple pie", "tags": ["fruit", "dessert"]}?