Roadmap, phase specs, pathology catalog, and CLAUDE.md establishing Ledgerline as an observability learning project built on a deliberately imperfect seven-service payments backend.
2.2 KiB
2.2 KiB
Phase 10 — Package the delivery
Part of docs/roadmap/ — see intro.md for platform/background context and summary.md for how every phase fits together. Prev: phase-9.md · Next: summary.md
Status: Not started
Message: Depends on every prior phase being done — this is the wrap-up, not independent work.
Time-box: one evening.
Babak gave you a task; deliver it like an engineer, not like a student.
README.md— architecture diagram, one-command start, what each container is for, and a "here's the demo" script.- The five-minute demo path, rehearsed:
- Delete every dashboard in the Grafana UI, then
ansible-playbook playbooks/grafana-stack.yml— the whole platform and every dashboard rebuilt from code, one command. - Submit one transaction from the frontend, then follow it through Grafana: RED dashboard → latency spike → exemplar → trace → span → logs for that span → back to the trace. One request, all three signals, no searching.
make chaos-nightmare && make load-stress— watch the SLO burn, the alert fire, and the service map turn red at a specific node.- Show
docs/INVESTIGATION.mdand how you found the pathologies.
- Delete every dashboard in the Grafana UI, then
- The written answers Babak asked for, as documents in the repo, not as a
conversation:
docs/SLO.md,docs/PIPELINE-CHOICES.md,docs/INVESTIGATION.md, plus a shortdocs/CONCEPTS.mdcovering P95/P99, RTO/RPO/SLA/SLO/error budget in your own words. - The test suite as part of the story. Show
make testgreen, then show the three generations of the call-counting assertion side by side —docker logs | grep, then LogQL, then TraceQL — as concrete evidence of what each signal bought you. Most people demo dashboards; almost nobody can show their observability work paying off inside their own test suite. - A "what I'd do differently in production" section. Tail sampling instead of 100%; Mimir instead of raw Prometheus for retention; Alloy as a DaemonSet; log volume budgeting; PII redaction in the Collector; multi-tenancy. Naming what you didn't do, and why, is the strongest signal of seniority in the whole delivery.