PracHub
QuestionsPremiumLearningGuidesCheatsheetNEWCoaches
|Home/System Design/Instacart

Design an e-commerce catalog

Last updated: Mar 29, 2026

Quick Overview

This question evaluates system design skills including relational data modeling, hierarchical category representation, product variant and attribute modeling, API design, caching, and search/index consistency trade-offs for an e-commerce product catalog.

  • medium
  • Instacart
  • System Design
  • Software Engineer

Design an e-commerce catalog

Company: Instacart

Role: Software Engineer

Category: System Design

Difficulty: medium

Interview Round: Onsite

Design a product catalog service for an e‑commerce site. Requirements: support hierarchical categories using a self‑referential Category table; products can belong to multiple categories; model product variants (size/color) and attributes; expose APIs to create/update products and categories, browse by category, search/filter by attributes, and fetch product detail. Specify a relational schema (tables, key fields, indexes) with the self‑join for categories, example API endpoints with request/response, pagination, and filtering. Discuss consistency choices, caching, read/write patterns, and how you would scale to 10M products and 1k QPS reads.

Quick Answer: This question evaluates system design skills including relational data modeling, hierarchical category representation, product variant and attribute modeling, API design, caching, and search/index consistency trade-offs for an e-commerce product catalog.

Related Interview Questions

  • Design an inventory management system - Instacart (medium)
  • Design cloud storage with quotas and compression - Instacart (hard)
  • Design scalable inventory system and avoid races - Instacart (hard)
  • Design an inventory system - Instacart (medium)
  • Design product catalog service - Instacart (hard)
Instacart logo
Instacart
Sep 6, 2025, 12:00 AM
Software Engineer
Onsite
System Design
8
0

System Design: Product Catalog Service

You are designing a product catalog service for an e‑commerce site. Assume a read‑heavy workload, a relational primary store, and JSON over HTTP APIs.

Requirements:

  1. Data model
    • Hierarchical categories using a self‑referential Category table (parent → child). Show the self‑join for categories.
    • Products can belong to multiple categories.
    • Model product variants (e.g., size/color) and arbitrary attributes.
    • Specify a relational schema: tables, key fields, and indexes.
  2. APIs
    • Create/update products and categories.
    • Browse products by category with pagination and filtering.
    • Search/filter by attributes.
    • Fetch product detail.
    • Provide example endpoints with example request/response payloads. Include pagination and filtering syntax.
  3. Architecture/operations
    • Discuss consistency choices (DB vs. cache vs. search index), caching, read/write patterns.
    • How to scale to 10M products and ~1k QPS reads.

Assumptions (you may refine): JSON APIs, REST style; prices/inventory may be separate services; 10M products, typical product has a few variants; peak read 1k QPS, writes much lower.

Solution

Show

Comments (0)

Sign in to leave a comment

Loading comments...

Browse More Questions

More System Design•More Instacart•More Software Engineer•Instacart Software Engineer•Instacart System Design•Software Engineer System Design
PracHub

Master your tech interviews with 7,500+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities
  • Student Access

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.