Skip to content

MiniS3 Journey

Start from an empty tree and complete each task card in order. Build first; peek at the patch only when stuck.

Learn in VSCode

Use a dedicated learning repository so the VSCode gutter and Source Control view show only one stage. The main checkout is never modified.

python journey/tools/build_journey.py study 3
code ../MiniS3-journey-workspace

To implement the stage yourself, prepare its clean previous-stage baseline and then check your work:

python journey/tools/build_journey.py attempt 3
python journey/tools/build_journey.py check 3

check runs the stage's cumulative tests.txt subset and prints a git diff --stat against a reference tree built directly from the patches. study and attempt confirm before overwriting existing learning work; use --yes to skip the prompt or --workspace PATH to choose another dedicated repository.

Stage Topic New tests Book chapter
01 Scaffold and object values 3 1
02 Bucket state and deterministic IDs 0 3
03 Durable storage boundary 0 5
04 Object service facade 15 2
05 Version history projection 3 3
06 Listing and the directory illusion 5 4
07 Manifest publication crash matrix 5 5
08 Directory fsync and startup cleanup 3 5
09 Multipart domain and validation 0 6
10 Durable multipart staging 1 6
11 Atomic multipart completion 4 6
12 Multipart crash recovery 2 6
13 Conditional requests and CAS 4 7
14 Deterministic lifecycle expiration 4 8
15 Public API and parity closeout 0 9

journey attempt is an experimental placeholder; it will be redesigned as CS336-style test-driven assignments (shipped tests + interface stubs, implement until green, check as grader).