Design: Product Catalog System
Design covers product metadata storage, search, and retrieval APIs. Image storage and CDN are out of scope. User authentication and order management are out of scope.
Functional Requirements
FR1: Store product information including name, description, price, and images
FR2: Support product categories and subcategories
FR3: Allow searching products by name, category, and attributes
FR4: Support filtering products by price range, brand, and other attributes
FR5: Handle up to 1 million products
FR6: Provide API for product retrieval with response time under 200ms
FR7: Support updates to product details with eventual consistency
FR8: Allow bulk import and export of product data
Non-Functional Requirements
NFR1: System should handle 1000 concurrent read requests
NFR2: API availability target of 99.9%
NFR3: Search queries should return results within 200ms p99 latency
NFR4: Data consistency can be eventual for product updates
NFR5: Images stored separately from product metadata
