June 23, 2026

Why Apex Uses Immutable Session Snapshots

Historical sessions should not change when a rider edits the current bike setup later.

The failure mode

If a session reads through live bike state, history can drift. A rider can log a session, change fork height later, and accidentally make the old session look like it used the new setup.

That makes comparison worse than useless because it looks precise while being wrong.

The decision

Apex freezes a setup snapshot when a session is created. The live setup can keep changing, but the historical record keeps saying what was actually run.

The cost

Snapshots duplicate some data. That is acceptable because the duplicated data protects the meaning of the record.

The alternative is a clever normalized model that makes every historical read depend on current state. Clever loses here.