Design a Scalable Catalog Service

Read the full interview experience this question came from →

Quick Overview

Design a read-heavy catalog service with versioned items, draft and publish workflows, browse and search projections, cache behavior, and safe schema evolution. The solution covers idempotent writes, coordinated releases, projection lag, reindexing, partitioning, failure recovery, and rollback.

Design a Scalable Catalog Service

Company: Attentive

Role: Software Engineer

Category: System Design

Difficulty: medium

Interview Round: Onsite

# Design a Scalable Catalog Service Design a catalog service that lets authorized producers create and update items while customers browse, retrieve, filter, and search the published catalog. Each item has structured attributes, descriptive text, a publication state, and a version. The service should support frequent reads, less frequent writes, safe schema evolution, and consistent publication of related item data. State any assumed scale and freshness targets. ### Clarifying Questions to Ask - Is this a product catalog, media catalog, internal service catalog, or another domain? - Which fields are strongly consistent, and how stale may browse and search results be? - Are variants, regional availability, prices, inventory, or permissions inside this service's boundary? - What write approval, version history, and rollback behavior do producers need? ### What a Strong Answer Covers - Item and version data models, producer and customer APIs, validation, and publication state transitions. - A source-of-truth store plus cache, browse index, and search index projections. - Idempotent updates, outbox or change-stream propagation, stale-read behavior, and reindexing. - Partitioning, hot-item handling, access control, observability, failure recovery, and schema migration. ### Follow-up Questions 1. How would you publish a coordinated update to thousands of related items without showing a half-updated collection? 2. What happens when the search index is unavailable while catalog writes continue? 3. How would you introduce a new required attribute without breaking older item versions?

Overview: Design a read-heavy catalog service with versioned items, draft and publish workflows, browse and search projections, cache behavior, and safe schema evolution. The solution covers idempotent writes, coordinated releases, projection lag, reindexing, partitioning, failure recovery, and rollback.

Read the full Attentive Software Engineer interview experience this question came from

|Home/System Design/Attentive
Attentive logo
Attentive
Sep 2, 2026
mediumSoftware EngineerOnsiteSystem Design
1
0

Design a Scalable Catalog Service

Design a catalog service that lets authorized producers create and update items while customers browse, retrieve, filter, and search the published catalog. Each item has structured attributes, descriptive text, a publication state, and a version.

The service should support frequent reads, less frequent writes, safe schema evolution, and consistent publication of related item data. State any assumed scale and freshness targets.

Clarifying Questions to Ask Guidance

  • Is this a product catalog, media catalog, internal service catalog, or another domain?
  • Which fields are strongly consistent, and how stale may browse and search results be?
  • Are variants, regional availability, prices, inventory, or permissions inside this service's boundary?
  • What write approval, version history, and rollback behavior do producers need?

What a Strong Answer Covers Guidance

  • Item and version data models, producer and customer APIs, validation, and publication state transitions.
  • A source-of-truth store plus cache, browse index, and search index projections.
  • Idempotent updates, outbox or change-stream propagation, stale-read behavior, and reindexing.
  • Partitioning, hot-item handling, access control, observability, failure recovery, and schema migration.

Follow-up Questions Guidance

  1. How would you publish a coordinated update to thousands of related items without showing a half-updated collection?
  2. What happens when the search index is unavailable while catalog writes continue?
  3. How would you introduce a new required attribute without breaking older item versions?

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...