Stale reads

An important idea is to allow and promote stale reads!

In an ideal world readers would be able to read inputs and calculate outputs instantly. Since they can't there are two options:

  1. Lock the input variables, so they cannot change while the calculation is taking place. This means the result won't be stale by the time it is available. However writers are blocked.
  2. Get a consistent snapshot of the input variables using MVCC. This avoids blocking the writers. However by the time the output is available it will be stale.

The universe is more like the second. When people look at something there is a delay due to the finite speed of light. That delay doesn't stop it from updating.