← Lessons

quiz vs the machine

Silver1080

System Design

The Product Catalog Service

Designing the read heavy service that serves product details to every shopper.

4 min read · intro · beat Silver to climb

What a catalog service does

The product catalog is the system of record for everything a shopper can buy: titles, descriptions, images, attributes, and category links. It is overwhelmingly read heavy, since millions of shoppers browse for every one merchant edit.

Core design choices

  • Denormalized read model: store each product as a single document so a product page is one lookup, not a join across ten tables.
  • Aggressive caching: put a cache or CDN in front, because product data changes rarely and is read constantly.
  • Search indexing: feed catalog changes into a separate search index rather than querying the database with text filters.

Keeping data fresh

When a merchant edits a product, the write goes to the source database, then an event propagates the change to the cache, the search index, and any downstream services. This is eventual consistency, which is fine because a price seen one second late rarely matters for browsing.

Key idea

The catalog is a read optimized, cache friendly system of record that fans changes out to search and caches through events.

Check yourself

Answer to earn rating on the learn ladder.

1. Why is the catalog usually stored as a denormalized document per product?

2. How do catalog edits reach the search index and caches?