Design Individual and Bulk Merchant Product Updates with Image Uploads

Read the full interview experience this question came from →

Quick Overview

Design merchant product updates, bulk-job results, image upload processing, concurrency control, and recovery from partial failures.

Design Individual and Bulk Merchant Product Updates with Image Uploads

Company: Pinterest

Role: Software Engineer

Category: System Design

Difficulty: hard

Interview Round: Onsite

Design a merchant-facing system that supports updating product attributes individually or in bulk and uploading product images. Explain the APIs, storage, processing flow, and how merchants learn which changes succeeded. ### Constraints Product count, batch size, image size, update rate, and consistency targets are not specified. State any design assumptions. Preserve both single-item and bulk updates, and treat image upload as a distinct data path that must be coordinated with product metadata. ### Clarifying Questions - Are attribute updates partial patches or complete replacements? - Must a bulk request succeed atomically, or may individual items fail independently? - When should an uploaded image become visible, and are validation or transformations required? - Can multiple clients update the same product concurrently? ```hint Track the unit of success A successful upload of bytes does not necessarily mean that the product now references a valid, processed image. ``` ### What a Strong Answer Covers - Merchant authorization, product identity, attribute validation, and concurrency control. - A bounded single-update path and durable bulk-job processing with item-level results. - Image storage, validation, lifecycle management, and observable failure handling. ### Follow-up Questions - How would a merchant retry a partially failed batch without repeating successful work? - What happens if metadata persistence fails after an image has been uploaded?

Overview: Design merchant product updates, bulk-job results, image upload processing, concurrency control, and recovery from partial failures.

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

|Home/System Design/Pinterest
Pinterest logo
Pinterest
Aug 28, 2026
hardSoftware EngineerOnsiteSystem Design
0
0

Design a merchant-facing system that supports updating product attributes individually or in bulk and uploading product images. Explain the APIs, storage, processing flow, and how merchants learn which changes succeeded.

Constraints

Product count, batch size, image size, update rate, and consistency targets are not specified. State any design assumptions. Preserve both single-item and bulk updates, and treat image upload as a distinct data path that must be coordinated with product metadata.

Clarifying Questions Guidance

  • Are attribute updates partial patches or complete replacements?
  • Must a bulk request succeed atomically, or may individual items fail independently?
  • When should an uploaded image become visible, and are validation or transformations required?
  • Can multiple clients update the same product concurrently?

What a Strong Answer Covers Guidance

  • Merchant authorization, product identity, attribute validation, and concurrency control.
  • A bounded single-update path and durable bulk-job processing with item-level results.
  • Image storage, validation, lifecycle management, and observable failure handling.

Follow-up Questions Guidance

  • How would a merchant retry a partially failed batch without repeating successful work?
  • What happens if metadata persistence fails after an image has been uploaded?

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...