PracHub
QuestionsPremiumLearningGuidesCheatsheetNEWCoaches
|Home/System Design/Snowflake

Design an object store with deduplication

Last updated: Apr 21, 2026

Quick Overview

This question evaluates a candidate's ability to design scalable, durable object storage systems with deduplication, touching on storage architecture, data modeling, metadata management, consistency, and garbage collection.

  • medium
  • Snowflake
  • System Design
  • Software Engineer

Design an object store with deduplication

Company: Snowflake

Role: Software Engineer

Category: System Design

Difficulty: medium

Interview Round: Technical Screen

## System Design Prompt Design a simplified cloud object storage service (similar to an object store) that allows users to upload and download files. The key focus is **reducing cost by avoiding storing duplicate files** (deduplication). ### Core Requirements - Upload a file (binary blob) and store it durably. - Download a previously uploaded file by an identifier. - Support basic metadata (filename, content-type, size, upload time, owner). - Avoid saving duplicates: if multiple users upload the exact same content, store it only once. ### Non-Goals (to keep it simpler) - No complex lifecycle rules, tiering, or CDN features required. - Permissions can be simplified (assume authenticated users, simple ACL). ### Scale / Assumptions (you may choose reasonable numbers) - Large number of objects; objects can be large (up to multiple GB). - High read/write throughput. - Must be resilient to failures. ### What to Cover - APIs - High-level architecture - Data model and storage layout - Deduplication approach (how to detect duplicates, how to reference shared content) - Consistency and correctness concerns (races, partial uploads) - Deletion / garbage collection (when shared content can be removed) - Operational considerations (monitoring, cost trade-offs)

Quick Answer: This question evaluates a candidate's ability to design scalable, durable object storage systems with deduplication, touching on storage architecture, data modeling, metadata management, consistency, and garbage collection.

Related Interview Questions

  • Design a Cron Job Scheduler - Snowflake (medium)
  • Design a disk-backed KV store under contention - Snowflake (easy)
  • Design an ACL authorization checking service - Snowflake (hard)
  • Design a distributed system end-to-end - Snowflake (hard)
  • Design resilient auth with flaky third-party tokens - Snowflake (hard)
Snowflake logo
Snowflake
Dec 15, 2025, 12:00 AM
Software Engineer
Technical Screen
System Design
20
0

System Design Prompt

Design a simplified cloud object storage service (similar to an object store) that allows users to upload and download files.

The key focus is reducing cost by avoiding storing duplicate files (deduplication).

Core Requirements

  • Upload a file (binary blob) and store it durably.
  • Download a previously uploaded file by an identifier.
  • Support basic metadata (filename, content-type, size, upload time, owner).
  • Avoid saving duplicates: if multiple users upload the exact same content, store it only once.

Non-Goals (to keep it simpler)

  • No complex lifecycle rules, tiering, or CDN features required.
  • Permissions can be simplified (assume authenticated users, simple ACL).

Scale / Assumptions (you may choose reasonable numbers)

  • Large number of objects; objects can be large (up to multiple GB).
  • High read/write throughput.
  • Must be resilient to failures.

What to Cover

  • APIs
  • High-level architecture
  • Data model and storage layout
  • Deduplication approach (how to detect duplicates, how to reference shared content)
  • Consistency and correctness concerns (races, partial uploads)
  • Deletion / garbage collection (when shared content can be removed)
  • Operational considerations (monitoring, cost trade-offs)

Solution

Show

Comments (0)

Sign in to leave a comment

Loading comments...

Browse More Questions

More System Design•More Snowflake•More Software Engineer•Snowflake Software Engineer•Snowflake 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.