Van model naar bitemporeel register
Uit het canonieke model genereert Omnium een database en een API die onthouden wat gold én wat wanneer bekend was.
Twee tijdlijnen
Een bitemporeel register houdt twee tijdlijnen bij:
- Materiële tijd: wanneer iets in de werkelijkheid geldig was. Iemand woont vanaf 1 maart op een nieuw adres.
- Formele tijd: wanneer het register dat wist. De verhuizing werd op 20 maart doorgegeven.
Met alleen de eerste tijdlijn weet je niet meer wat je op 10 maart kon weten. Met beide kun je elke beslissing achteraf verklaren.
Registraties
Schrijven gebeurt in registraties: elke wijziging is een vastgelegd moment, niet een overschreven waarde. Correcties en ongedaanmakingen blijven zichtbaar, zodat er een volledig spoor is van wat er wanneer is veranderd.
Daardoor kun je tijdreizen: opvragen wat er op een eerder moment bekend was.
Hoe het is opgebouwd
Elke entiteit krijgt in de gegenereerde database een vaste kern met haar identiteit (de hub) en daarnaast de opeenvolgende versies van haar gegevens (de _Data), elk met hun formele en materiële tijd. De identiteit verandert nooit, de gegevens krijgen er versies bij. Zo blijft een verwijzing naar een persoon geldig, ook als alles aan die persoon verandert.

Status
| Onderdeel | Status |
|---|---|
| Database en API genereren uit het canonieke model | werkt |
| Formeel tijdreizen via REST | werkt |
| Materieel tijdreizen, generiek | gepland |
| Volledige tijdreis via GraphQL | gepland |