EvalcueAI logo EvalcueAI

System design problem

Design Google Drive or Cloud File Storage

Design a cloud file storage and synchronization service. The problem combines large-object transfer, metadata, permissions, versioning, sync, offline changes, and reliability across devices and regions.

Separate file bytes from file metadata

Clarify file-size limits, folders, sharing, versions, offline support, and synchronization. A common design stores large file chunks in object storage while a metadata service owns names, versions, permissions, chunk manifests, and user-visible hierarchy.

  • Resumable uploads
  • Chunked object storage
  • Metadata and version records
  • Folders, ownership, and sharing

Design upload, download, and sync flows

Discuss multipart or chunked upload sessions, checksums, deduplication if required, pre-signed transfer URLs, download authorization, change logs, client cursors, and how devices learn which files changed.

  • Upload session API
  • Chunk checksum and retry
  • Change feed or sync cursor
  • Conflict detection and versioning

Deep dive into consistency and reliability

Follow-ups often cover concurrent edits, metadata transactions, lost devices, deleted files, permission changes, chunk durability, multi-region replication, large-file retries, quotas, and disaster recovery.

  • Metadata consistency
  • Conflict resolution
  • Durable replicated object storage
  • Deletion, retention, and recovery

Common questions

Why split metadata from object storage?

Metadata needs transactions, indexes, permissions, and low-latency listing, while large immutable file chunks benefit from scalable object storage. Separating them lets each workload use a suitable storage model.

How can file uploads resume after failure?

Upload files in independently addressable chunks, persist an upload-session manifest, verify chunk checksums, and let the client retry only missing or failed chunks before finalizing the version.

How do multiple devices synchronize changes?

Maintain an ordered or cursor-based change feed per user or workspace so clients can ask for changes since their last sync point, then resolve conflicts according to the product's consistency rules.

Related guides

Start AI interview practice