A versioned config in 70 lines
Every change to the config is an event in the journal. The journal is the source of truth. Roll back to any past state. The substrate's job is time travel.
01Current config
02Add or change
03History (every change is recorded)
Click any past event to roll back to that state. The config cells will return to their values at that point in time.
| # | Time | Op | Key | Value | Action |
|---|
04Take it with you
05The pattern
The journal IS the config history. There's no separate "audit log" โ every BIND, every EFFECT, every TICK is in the journal. To roll back, replay the journal up to a point. The substrate does the rest.
Compare to Git: Git's commit log is a journal. Git's checkout is replay-to-a-point. Git's diff is journal-segmentation. The substrate is Git for application state, with the journal always in memory.