Tijdstippen en geldigheid
Registratie met kwaliteit vereist twee boekhoudingen: een gevolgenjournaal en een leveringenstaat. Elk heeft zijn eigen tijdstippen, en die hangen op een specifieke manier samen.
Geldigheid
Het domein bepaalt wat iets geldig of ongeldig maakt, wanneer dat ingaat en wanneer het beëindigd wordt. Het tijdstip vanaf wanneer iets geldig is heet het geldigheidstijdstip. Als ook een einddatum bekend is, vormen begin- en eindtijdstip samen een geldigheidstijdvak.
Zowel het gevolgenjournaal als de leveringenstaat bevatten geldigheidstijdstippen, maar de betekenis van deze tijdstippen is afhankelijk van de context.
Gevolgenjournaal: het gevolgtijdstip
In het gevolgenjournaal worden in de basis twee tijdstippen vastgelegd:
- Het geldigheidstijdstip: vanaf wanneer is het gevolg (volgens de betekenis in het domein) geldig?
- Het gevolgtijdstip: wanneer is dit gevolg geregistreerd?
Leveringenstaat: het projectietijdstip
In de leveringenstaat wordt het projectietijdstip toegevoegd aan de bovengenoemde tijdstippen: het moment in de tijd waarop de projectie beschikbaar gekomen is voor de afnemer.
Het geldigheidstijdstip uit het gevolg wordt doorgaans overgenomen in de projectie, zij het met een subtiele verandering van betekenis. Elk (relevant) gevolg leidt tot het bijwerken van een projectie. De geldigheid van de samenstelling van gegevens die de projectie vormen begint dan ook op hetzelfde geldigheidstijdstip als het laatst verwerkte gevolg.
Daarnaast kunnen in de projectie begin- en eindtijden van 1 of meerdere gegevens opgenomen worden. Ook deze gegevens worden bepaald aan de hand van de geldigheid van het gevolg. Als bijvoorbeeld de beëindiging van een WOZ object op 1 juni 2026 om 13:24 geldig is geworden volgens het betreffende gevolg, zou in een projectie vastgelegd kunnen worden dat dit WOZ object op 1 juni 2026 om 13:24 beëindigd is. Met andere woorden: de geldigheid van een gevolg in combinatie met de aard van het gevolg zeggen wat over de geldigheid van entiteiten en hun eigenschappen.
De meest voorkomende query: wat is nu geldig?
Het overgrote deel van de queries aan de leveringskant — naar schatting zo'n 99% — gaat over de actuele stand: wat is er nu geldig? Je wilt zien wat op dit moment van kracht is.
Daarbij is het informatief om te weten vanaf wanneer deze verzameling gegevens als geheel geldig is. Dat is geen expliciete geldigheid per veld, attribuut of object, maar het tijdstip vanaf wanneer deze collectie gegevens als geheel van kracht is.
De andere query: tijdlijnen
Een kleine minderheid van de queries vraagt naar de geschiedenis: van wanneer tot wanneer was iets geldig? Voor die vraag wil je tijdlijnen zien. Dat is een wezenlijk andere query dan "wat is het nu?" — en die vraag moet je ook expliciet stellen.
De tijdvakken in zo'n tijdlijn kunnen verwijzen naar de toestanden die bij de bijbehorende tijdstippen horen.
Actueel en opgevolgd
De projectie kan meerdere toestanden bevatten die betrekking hebben op hetzelfde geldigheidstijdvak. Dat gebeurt wanneer een later gevolg een eerder gevolg voor dezelfde periode vervangt — bijvoorbeeld bij een correctie.
De meest recente toestand voor elk geldigheidstijdvak is actueel. "Meest recent" wordt bepaald op basis van het projectietijdstip: de projectierij met het hoogste projectietijdstip geldt.
Een collectie gegevens, bepaald door het domein, kan meerdere actuele toestanden hebben — één per geldigheidstijdvak. Elke actuele toestand vertegenwoordigt de geldende stand voor zijn eigen periode.
Een toestand die niet meer actueel is voor zijn geldigheidstijdvak heet opgevolgd. Het is niet verwijderd uit de projectie: de geschiedenis blijft volledig bewaard. Een opgevolgde toestand is nog steeds opvraagbaar, bijvoorbeeld voor auditing of historisch onderzoek.
Een opgevolgde toestand kan ontstaan door:
- Een domeinwijziging — een nieuw gevolg vervangt een eerder gevolg voor dezelfde periode, hetzelfde geldigheidstijdvak. Dit speelt met name bij herstel. Het
gevolgtijdstipvan de nieuwe versie verschilt dan van het oorspronkelijke toestand. - Een replay — de gevolgen waren correct, maar de projectiecode bevatte een bug. Na een bugfix worden de gevolgen opnieuw verwerkt. De replay produceert een nieuwe toestand met hetzelfde
gevolgtijdstipals de 'bugged' toestand, maar een laterprojectietijdstip.
Dit onderscheid is zichtbaar in het bitemporeel diagram. Op de gevolgtijdstip-as vallen de 'bugged' toestand en de gecorrigeerd toestand samen in hetzelfde tijdvak: ze verwijzen naar hetzelfde gevolg. Op de projectietijdstip-as zijn ze wél van elkaar gescheiden. Een replay is dus alleen zichtbaar op de projectietijdstip-as — en dat is semantisch correct.
Zie het voorbeeld Projectiefout hersteld via replay voor een concrete uitwerking.
In de viewer
In de tijdlijn dragen alle actuele toestanden een groen badge Actueel. Toestanden die zijn opgevolgd dragen een grijs badge Opgevolgd.