C.W.K.
Stream
Lesson 02 of 04 · published

The Timeline Is Unbounded

~10 min · timeline, past-scatter, future-scatter, interventions

Level 0Cold Iron
0 XP0/36 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"There is no start date and no end date. The timeline runs backward into forgotten Tuesdays and forward into appointments not yet kept."

Both Directions Are First-Class

Because health has no terminal state, its timeline is unbounded in both directions, and both are ordinary. Past scatter: a 2025 check-up scanned today files under 2025; a symptom Dad forgot moves to last Tuesday. Future scatter: a scheduled appointment or a planned training block sits in next month. This is the Track 3 date-picker mechanic seen from the lifecycle angle — captured_at stays the true moment of writing while target_date ranges freely across the whole line, past and future, and the two never collapse into one.

Interventions Are Just Dated Crumbs

The tempting move, once you name "intervention" as a loop phase, is to build an Intervention entity with a start, a status, and a workflow. Forge refuses. A new prescription, a changed training block, a procedure — each is an ordinary dated crumb, no different in kind from a symptom or a meal. Analysis reads the timeline against these crumbs: it finds the day the training block changed and reads the trend on either side of it. The intervention is a marker in the stream, not a ceremony with its own machinery.

Interventions are read from the record, never modeled as ceremonies. A regimen change or a procedure enters as a dated crumb like everything else. Analysis locates it on the timeline and reads around it. Building a special entity for it would add a second source of truth the crumb stream already contains.

Why This Shape Is Sturdy

An append-only stream of dated events, projected into current state, is a well-worn and durable pattern — it is event sourcing in everything but name. It means the record is never rewritten, only added to; the "current picture" is always a projection you can rebuild; and past, present, and future all live on one axis instead of in three different systems. When a domain has no natural completion, this is the shape that fits it — and it is exactly why the storage layer in Track 7 can rebuild every derived view by replaying the log.

Code

One unbounded axis; the intervention is an ordinary crumb·text
  PAST <-----------------+----------------- FUTURE
                         | today
  [2025-11 check-up PDF]  |
     filed today,         |
     target_date 2025-11  |
                          |
   [2026-07-19 "stiff"] --+
                          |
            [2026-07-24 "started the new 3x block"]  <-- INTERVENTION
                          |         (just a dated crumb)
                          |
                          +--> [2026-08-04 planned block, target_date future]

# analysis reads the trend on either side of the 07-24 crumb.
# no Intervention table - the marker lives in the stream.

External links

Exercise

Write three crumbs for a single training change: one dated in the past (something that already happened), one dated today (the change itself), and one dated in the future (a planned session). Which crumb is the 'intervention', and explain why it needs no special entity — just a date.
Hint
The today-dated 'changed the block' crumb is the intervention. It is an ordinary dated crumb; analysis finds it by date and reads the trend on both sides. A dedicated Intervention table would just duplicate what the stream already holds.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.