Walking Skeleton Lab
Deliverable: one commit in the capstone repo that is a walking skeleton -- an end-to-end request that crosses every layer, runs in CI, and deploys to staging.
Retrieval Prompts
- State the three words in "walking skeleton" and what each one requires.
- Explain the difference between a walking skeleton, a steel thread, and a minimum viable product.
- Name the minimum set of layers your capstone's walking skeleton must traverse.
- State the single most important property a walking skeleton must preserve as features are added.
Compare and Distinguish
Separate these pairs clearly:
- walking skeleton versus minimum viable product
- walking skeleton versus steel thread (which one proves what?)
- vertical slice versus horizontal layer
- integration test against real DB versus unit test against mocked DB
Common Mistake Check
For each statement, identify the error:
- "The skeleton uses an in-memory stub for the DB because the real DB is not set up yet."
- "The skeleton is throwaway code; the real version will replace it later."
- "We can skip deploying the skeleton because it runs locally."
- "The walking skeleton's endpoint must do something useful for a user."
Mini Application
In one session (90 minutes):
- Decide the single request the skeleton will answer. Default recommendation:
GET /healthreturning a DB ping. - List every layer it must traverse in your capstone architecture. Include transport, framework, domain, data access, database, deploy target, observability hooks.
- Write the smallest implementation of each layer that participates.
- Write one test that exercises the request end-to-end against a real database.
- Wire that test into CI so every PR runs it.
- Deploy the skeleton to a staging environment (local container counts on day 1; staging by day 3).
- Record evidence: the passing CI run link, and the staging URL returning
200.
Evidence Check
This lab is complete only when:
- a reviewer can clone your repo, run one command, and see the skeleton pass
- a CI run shows the skeleton test green on the main branch
- you can point at the request in staging and see a response
- the skeleton's response crosses all your architectural layers, not a subset
Stretch
- Add a single structured log line from the skeleton (trace/span/level) so Module 4 observability has something to bind to.
- Add the skeleton's request as a contract test (see Concept 9) to pin its shape early.