Maintain transaction time
Amend valid time
Model domain time
Query with Datalog
Scale with Kafka
Temporal and data agility
Declarative query across connected data
Reconcile conflicting versions of history
Unbundled and endlessly adaptable
[V]ersioned relational databases and time-travel queries are still relegated to esoterica today, popping up in occasional research prototypes and minor open-source projects. It is an idea that is ripe for a comeback in our era of cheap storage and continuously streaming data.
Time is a fundamental dimension of data and complex data models regularly require us to capture timestamps. As these models grow we often find ourselves fighting an ever-increasing sprawl of ad-hoc timestamp relations.
An alternative to this constant fighting and friction is to embrace tools that equip us to work with time more naturally. Bitemporality is a well-understood approach to working with time and Crux makes bitemporality easy.
Modelling data using a bitemporal history is invariably a good idea, like writing software with version control.