HackerTube 中文?
Thematic readings

Can today’s record explain yesterday’s decision?

Keep the value a decision actually used so that later changes do not erase its explanation.

A customer asks why they received an overdue notice yesterday. Today their account says paid. Both facts can be true.

Give facts a time

Hickey distinguishes a fact from a later change. Overwriting the current status makes it hard to recover what the system knew when it sent the notice.

you can't update a fact is because you can't change the past
Rich Hickey · The Value of Values · Original captions
Replay 22:20–22:25 →

Versions can share structure

Keeping an old version need not mean copying the whole record. Persistent data structures share the parts that stayed the same; old and new readers each have a definite value.

the next version of the value shares a lot of structure with the prior version
Rich Hickey · Are We There Yet? · Original captions
Replay 40:03–40:20 →

What else is needed to reconstruct the state at the time?

Event sourcing reconstructs a past state by applying its ordered events to a projection. A record saying “just shut down” illustrates the remaining gap. In MIT’s reactor lecture, neutron-absorbing xenon builds up during operation, so the material present depends on earlier operation. A software projection can define how to replay discrete events; the physical process also evolves with time. A timestamped log is evidence of history. Reconstruction additionally needs the relevant initial conditions, inputs and transition rules.

Compare passages and timestamps
current state is a left fold of previous behaviors
Event Sourcing • Greg Young • GOTO 2014 · Original captions
Replay 6:13–6:20 →
Xenon-135 is one of the best neutron absorbers there is.
26. Chernobyl — How It Happened · Original captions
Replay 9:03–9:06 →
you'll reach the xenon equilibrium level where it will build to a certain level that will counteract the reactivity
26. Chernobyl — How It Happened · Original captions
Replay 9:50–10:00 →

Do two historical values need two copies of memory?

Hickey starts with locks that readers of shared data must remember. Immutable values reduce that coordination burden. Puente then opens the implementation: a small change in a persistent tree can copy the affected path while old and new versions share untouched branches. This explains why keeping a value may be cheap. The application still has to record which version actually triggered a particular reminder.

Compare passages and timestamps
have everybody remember what the locking model is
Clojure for Java Programmers Part 1 - Rich Hickey · English transcript (passage interval)
Replay 6:05–7:55 →
most of the data structure is shared between all these values
CppCon 2017: Juan Pedro Bolivar Puente “Postmodern immutable data structures” · Original captions
Replay 8:39–8:46 →

Is a recomputed July report the same report?

Hickey describes deriving prices from past sales. Kleppmann’s materialized view makes derived results cheap to read by maintaining them when underlying data changes. If both the orders and the pricing rule have since changed, today’s view answers a different question. Reproducing the quoted price requires the inputs and rule version used then, or the historical output itself.

Compare passages and timestamps
produces pricing information
Effective Programs - 10 Years of Clojure - Rich Hickey · English transcript (passage interval)
Replay 10:38–14:28 →
query's already been done ahead of time
"Turning the database inside out with Apache Samza" by Martin Kleppmann · Original captions
Replay 16:29–16:34 →

After the sale, which date values the proceeds?

This account of Japanese economic history separates asset sale, withdrawal date and price changes. A nominal amount can remain on the books while deferred access during inflation changes what it buys. Place pricing, access and the price index used for comparison on a timeline. A question about remaining wealth needs to specify which value on that timeline it asks for.

Compare passages and timestamps
Land reform during and after the war
What Eating the Rich Did For Japan · Original captions
Replay 15:01–15:06 →
they were not allowed to withdraw
What Eating the Rich Did For Japan · Original captions
Replay 15:16–15:21 →

The application still has to decide which versions to retain and record which version a decision used. Only then can supplying the old record and date reproduce the earlier answer.