Week 21 - Design and Foundation¶
Conceptual Core¶
A capstone that isn't designed first becomes a tutorial. Spend the first week producing a written design document - what you are building, what you are not building, what invariants you guarantee, how you will know it works.
Deliverables¶
- Design doc (3–8 pages): goals, non-goals, system diagram, data model, failure model, observability story, testing strategy.
- Skeleton repo: build, lint, format, CI, JUnit 5, JMH module, JFR config, Dockerfile, OpenTelemetry wiring. Use your
hardening/template from months 1–5 as the starting point. - Walking skeleton: end-to-end path through every major component, even if each component is a stub. "Hello world from every box on the diagram."
Track-specific notes¶
- Distributed storage: read the Raft paper (Ongaro). Decide on snapshot strategy and log compaction up front. Pick a wire protocol (gRPC is the default).
- Service mesh: decide on service discovery (in-memory registry for the lab; etcd or Consul if ambitious). Define the deadline-propagation contract.
- Streaming pipeline: decide on persistence (segmented append-only files like Kafka; or RocksDB). Define the delivery contract (at-least-once is realistic).
Hardening slice¶
CI runs: build + test + JMH smoke + integration test in containers. Push the green button before week 22.