Ch. 19 · System Design

System Design Uploads and Safe Completion

System Design Uploads and Safe Completion. Learn the reasoning, a practical example, common mistakes and an interview exercise.

~2 min readadvancedupdated Oct 3, 2026

Uploads involve authorization, transfer, metadata and post-processing. A completed transfer does not necessarily mean the content is ready to publish.

Before you start

You should understand API requests, storage and basic capacity estimates. Begin with a concrete user action and its correctness requirement. Draw data flow and failure boundaries before selecting infrastructure; a technology name by itself does not explain why a design meets the requirement.

The practical goal is to reason through this situation: An upload receives a controlled destination, then validation marks the object usable. Read the walkthrough first, then try the interview exercise before opening its answer. The important part is explaining the decision and its consequences, rather than remembering a definition alone.

Step-by-step walkthrough

Step 1: Authorize the destination

A client may upload only to its intended object scope.

Step 2: Separate transfer and readiness

Completed bytes can still fail validation or processing.

Step 3: Verify completion

Confirm ownership, size and required checks before publishing metadata.

Worked scenario

An upload receives a controlled destination, then validation marks the object usable.

An image reaches object storage, but decoding reveals invalid content. Marking it public from a client-reported success would expose unusable or unsafe material. Keep the object pending until the server’s completion workflow verifies its contract, then publish a ready status linked to that exact object.

Common mistake

Trusting client-reported completion can expose incomplete or invalid data.

Verify the behavior

Test partial upload, duplicate completion and failed validation.

Interview exercise

Design a completion step.

Answer and reasoning

Verify object ownership, size and expected processing state before publishing metadata or granting access.

Continue learning

Compare the scenario with the System Design interview questions and test your understanding with the System Design MCQs. For terminology and implementation details, consult the reference material.

More in System Design

read ✓System Design · hard

System Design: Bloom Filters

Use a Bloom filter to skip lookups with a tiny memory footprint, and understand its false-positive-only guarantee.

~2 min readread →
read ✓System Design · hard

System Design: Idempotent APIs

Make retried requests safe with idempotency keys, store the result per key, and return the original response on a repeat.

~2 min readread →
esc