PracHub
QuestionsPremiumLearningGuidesCheatsheetNEWCoaches
|Home/System Design/Instacart

Design cloud storage with quotas and compression

Last updated: Mar 29, 2026

Quick Overview

This question evaluates a candidate's ability to design a multi-tenant cloud storage system, testing competencies in API design, quota accounting, compression strategies, distributed storage architecture (partitioning, replication/erasure coding), consistency models, security, versioning, and observability.

  • hard
  • Instacart
  • System Design
  • Software Engineer

Design cloud storage with quotas and compression

Company: Instacart

Role: Software Engineer

Category: System Design

Difficulty: hard

Interview Round: Take-home Project

Design a multi-tenant cloud storage service. Requirements: 1) Support adding (uploading) new files, retrieving files, and copying files; define APIs and copy semantics (server-side copy, deep copy, copy-on-write) and how metadata and permissions propagate. 2) Support adding users with per-user capacity limits and tiers; describe quota accounting, enforcement at upload time, and how copies and compression count toward quotas. 3) Support compressing files on upload and decompressing on download; choose algorithms, placement in the data path, metadata storage, and trade-offs between CPU cost, latency, and storage savings. 4) Ensure durability, availability, scalability, and consistency; detail components (object store, metadata service, index), partitioning, replication, background tasks, and failure recovery. 5) Cover security (authentication, authorization/ACLs), auditing, versioning, and monitoring; propose APIs/methods for each feature and outline tests.

Quick Answer: This question evaluates a candidate's ability to design a multi-tenant cloud storage system, testing competencies in API design, quota accounting, compression strategies, distributed storage architecture (partitioning, replication/erasure coding), consistency models, security, versioning, and observability.

Related Interview Questions

  • Design an inventory management system - Instacart (medium)
  • Design an e-commerce catalog - Instacart (medium)
  • Design scalable inventory system and avoid races - Instacart (hard)
  • Design an inventory system - Instacart (medium)
  • Design product catalog service - Instacart (hard)
Instacart logo
Instacart
Sep 6, 2025, 12:00 AM
Software Engineer
Take-home Project
System Design
6
0

System Design: Multi‑Tenant Cloud Storage Service (Take‑Home)

You are tasked with designing a multi‑tenant cloud storage service that supports file upload, retrieval, copy, compression, quotas, and strong operational guarantees. Assume a typical public cloud environment and that tenants may have multiple buckets or namespaces.

Requirements

  1. APIs and Copy Semantics
    • Define REST APIs for: uploading new files, retrieving files, copying files, deleting files, and listing.
    • Define copy semantics for: server‑side copy, deep copy, and copy‑on‑write (CoW).
    • Specify how metadata (e.g., content‑type, custom key/values) and permissions propagate during copy.
  2. Multi‑Tenant Users and Quotas
    • Support adding users/tenants with per‑user capacity limits and tiers.
    • Describe quota accounting, enforcement at upload time (including multipart), and how copies and compression count toward quotas.
  3. Compression
    • Support compressing on upload and decompressing on download.
    • Choose algorithms and where compression sits in the data path.
    • Specify how compression metadata is stored.
    • Discuss trade‑offs between CPU cost, latency, and storage savings.
  4. Durability, Availability, Scalability, Consistency
    • Detail core components (object store, metadata service, index/catalog).
    • Describe partitioning/sharding, replication/erasure coding, background tasks (GC, scrubbing, rebalancing), and failure recovery.
  5. Security, Auditing, Versioning, Monitoring
    • Cover authentication and authorization/ACLs and propose APIs/methods.
    • Include auditing, object versioning, and monitoring/alerting.
    • Outline tests to validate these features.

Solution

Show

Comments (0)

Sign in to leave a comment

Loading comments...

Browse More Questions

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