Skip to content
About
Main content

The three ways out of incompleteness

What are the only three ways to act on data that may still be incomplete, and what do they all cost?

Which clock to use is settled once, when the timestamp is assigned. The harder question is when you may act on data that may still be incomplete. , , and turn that unanswerable question ("is the data complete?") into a declared assumption that can be checked and found false. There are exactly three ways out of incompleteness, and no fourth:

  • Wait. Buy completeness with latency.
  • Guess.
  • Revise. Emit , correct later, and force every downstream to accept changes and handle repeated updates safely (to be mutable and ).

This is a general rule of design: . Here it moves onto latency, onto accuracy, or onto the consumer.

The past in the world cannot change, but your record of it can, and recording that is the last part of the debt (bitemporal data).

All of it is paid for in the same currency: retained state. Allowed lateness, replay depth, time-travel horizon and are the same knob seen from four sides. , and you cannot tune the two separately. This links three trade-offs that people usually think about apart: exact versus approximate answers, ordered versus parallel processing, and latency versus completeness.