How the interviewer opens it
“Design a product catalog for a large marketplace. Merchants create products and variants, then assign products to existing categories. Customers browse the catalog and expect merchant changes to appear promptly.”
The prompt is vague on purpose. The first minutes are for you. Reduce the prompt to the core features and agree on the numbers before you draw.
What to clarify first
- Catalog size
- Traffic and read-to-write ratio
- Record size
- Products and categories
- Merchant edits and imports
- Latency
- Consistency and availability
- Durability
- Retention
- Scope limits
The interviewer has the answers. In a SysRound round, Alex gives these answers, as a real interviewer does.
Scope of a strong answer
Core requirements
- Read published products and their variants.
- Browse products by an existing category.
- Let merchants edit products, variants, and product category assignments.
- Apply bulk edits and report a result for each record.
Usually out of scope
- Manage stock or reserve inventory.
- Calculate discounts or complete purchases.
- Store or process image files.
- Manage the category hierarchy.
- Accept writes in several regions.
What interviewers ask about
- Products and merchant edits
- Variants share product data but have separate identities and prices. Concurrent edits and partial imports must not silently replace valid merchant data.
- Changes at customer reads
- Merchant edits must reach several customer views. Delays, repeated events, and old events can restore incorrect catalog data.
- Catalog reads
- Popular products create uneven load. Large categories and variant sets need bounded responses that preserve the stated revision and freshness rules.
Common mistakes
- The design returns an unbounded variant list in every product response.
- The write path commits catalog data and sends change events without a shared durability mechanism.
- The design acknowledges edits or import receipts without durable replication and safe failover.
- The design treats event arrival order as merchant edit order.
- The delete path permits a delayed event to restore a deleted product.
- Bulk imports consume all write capacity and delay interactive edits.
The bar by level
- Senior (L5/E5)
- Defines revision and conflict rules. Connects durable commits to reliable events. Handles import receipts, record retries, deletion, page contracts, and cache failure.
- Staff (L6+/E6+)
- Defines quorum commit and failover guarantees across authoritative records. Plans online rebuilds and bounded recovery. Allocates freshness and capacity budgets across imports and read copies.