Design an Online Bookstore/E-commerce Catalog

System Design
Medium
Amazon
51.5K views

Design the data model and API for browsing an e-commerce product catalog. Discuss database choice (SQL for consistency, NoSQL for attributes) and multi-schema scaling.

Why Interviewers Ask This

Interviewers ask this to evaluate your ability to balance data consistency with scalability in a high-traffic environment. They specifically test if you can justify choosing SQL for transactional integrity versus NoSQL for flexible product attributes, and how you would architect a schema that supports Amazon's massive catalog diversity without sacrificing query performance.

How to Answer This Question

1. Start by clarifying requirements: define the scale (e.g., millions of SKUs), read-to-write ratio, and specific browsing features like faceted search or recommendations. 2. Propose a hybrid database strategy: use PostgreSQL for order processing and inventory consistency, while leveraging DynamoDB or MongoDB for storing diverse, optional book attributes like author bio or format details. 3. Design the core entities: outline tables for Products, Categories, Authors, and Inventory, emphasizing foreign key relationships for relational data. 4. Address API design: define RESTful endpoints for fetching catalog pages, filtering by genre/price, and searching titles, ensuring pagination is handled efficiently. 5. Discuss scaling strategies: explain how to implement read replicas for browsing traffic and sharding strategies based on category or region to handle Amazon-level load. 6. Conclude with trade-offs: briefly mention eventual consistency models if applicable for non-critical data like view counts.

Key Points to Cover

  • Justify the choice of SQL for transactions and NoSQL for flexible attributes clearly
  • Demonstrate understanding of read-heavy workloads typical in e-commerce catalogs
  • Propose specific sharding or partitioning strategies for handling large-scale data
  • Design API endpoints that support complex filtering and pagination efficiently
  • Address the trade-off between data consistency and system availability

Sample Answer

To design this catalog, I first clarify that we need to support millions of books with varying attributes, requiring high availability and fast read speeds. For the data model, I propose a polyglot persistence approach.…

Common Mistakes to Avoid

  • Suggesting a single database type for all data without considering the distinct needs of transactions vs. attributes
  • Failing to discuss how to handle high read traffic through caching or read replicas
  • Overlooking the importance of indexing strategies for search and filter operations
  • Ignoring the scalability implications of the proposed schema when data volume grows exponentially

Sound confident on this question in 5 minutes

Answer once and get a 30-second AI critique of your structure, content, and delivery. First attempt is free — no signup needed.

Try it free

Related Interview Questions

Browse all 165 System Design questionsBrowse all 136 Amazon questions