What is cool about this is that if you have access to the data like ID1, you can easily find out when it was added and how it changed.
If you have access to the temporal ID, X1, then at any time you can see what the data looked like.
If you need to relate data, the "foreign key" used is the data_temporal ID. In this way, it is possible to ask what your key value store data looked like at any time.
But, this could be off from the article.
This also works quite well in a relational database.
Comments
For a temporal or time based key value store (I think this is kinda what the presentation shows) I used a collection that was something like:
Temporal Collection { _id: "X1", data_temporal : [ { time_start: SomeDate, time_stop: SomeDate, _id: "ID2" }, { time_start: SomeDate2, time_stop: SomeDate2, _id: "ID2" }]
Data Collection { _id: "ID1", parent: X1, data: { field1: "some info", field2: 34 }, _id: "ID2", parent: X1, data: { field1: "Some info new", field2: 34 } }
What is cool about this is that if you have access to the data like ID1, you can easily find out when it was added and how it changed.
If you have access to the temporal ID, X1, then at any time you can see what the data looked like.
If you need to relate data, the "foreign key" used is the data_temporal ID. In this way, it is possible to ask what your key value store data looked like at any time.
But, this could be off from the article.
This also works quite well in a relational database.