The Memory Bank
The machine finally remembers.
What you're wiring up
A key-value store at this stage is honestly just a Go map guarded behind three verbs — and that's the point: the hard parts of a database are never the map, they're everything around it (protocol before, concurrency and durability after).
This stage also introduces the discipline of exact protocol semantics: GET of a missing key returns the null bulk string, not an error. SET returns +OK. DEL returns an integer count. Redis's real behavior is the spec.
Assembly steps
hint
Make the store its own type even though it's trivial — Stages 4–6 all attach to it (lock, clock, recorder).
hint
DEL a a where a exists once returns :1 — count deletions, not arguments.
hint
The harness checks the '-ERR wrong number' prefix; the connection must survive the error.
Go deeper (after it passes)
Pairs with DDIA M3 — Build Your Own Storage Engine (this is its first half) and Clean Code M4 — Hide the Guts.