Er zijn diverse patronen denkbaar:
Patroon 1: twee keer benaderen
Patroon 2: één keer benaderen – Optie 1
Patroon 3: één keer benaderen – Optie 2
Merk op dat patroon 1 en 3 niet werken voor situaties, zoals zoeken, waarin nog niet bekend is op welke personen een verwerking betrekking heeft.
In de tabel hieronder zijn voor ieder patroon de mogelijke foutsituaties geanalyseerd.
Op basis van bovenstaande analyse zijn er drie mogelijkheden:
(1) Veel implementaties voor logging zijn geoptimaliseerd om verwerkingenlogentries zo efficiënt mogelijk weg te schrijven. Het ‘even snel opzoeken van een entry’ en deze aanpassen past niet goed in dat patroon. Gevolg is mogelijk dat standaardoplossingen niet bruikbaar zijn en er complexer maatwerk nodig is dat logentries bijvoorbeeld in een buffer bewaart tot bevestiging binnen is of een bepaalde tijd verstreken is.
(2) Bij eenvoudige acties (CRUD) is een rollback wel realiseerbaar. Bij bedrijfsfuncties betreft het vaak veel meer dan alleen het terugdraaien van de gegevens. Een rollback is dan eigenlijk alleen mogelijk wanneer de actie binnen een totaal geïsoleerde transactie is uitgevoerd. Alleen dan weten we zeker dat er niet al allerlei vervolgstappen in gang zijn gezet. Als een systeem het terugdraaien van een actie ondersteunt, is dat vaak omdat er een inverse operatie geïmplementeerd is. Er is meestal geen sprake van ‘gewoon’ terugdraaien. Het uitvoeren van een dergelijke inverse functie zou in de termen van de AVG een nieuwe verwerking zijn.
In het initiële ontwerp voor verwerkingenlogging werd in het verwerkingenlog vastgelegd of de actie geslaagd was of niet. Op basis van bovenstaande analyse is dit gegeven geschrapt.
In de eerste – meest eenvoudige – case (C9172) hebben we twee momenten waarop het systeem iets met persoonsgegevens doet. Eerst worden de gegevens opgehaald, daarna worden ze gewijzigd opgeslagen. De verwerking uit het eerste deel van dit vraagstuk bestaat nu dus eigenlijk uit twee aparte stappen. De vraag die hierdoor ontstaat is: loggen we beide acties apart of zien we het als één actie?
Er zitten twee aspecten aan dit vraagstuk:
Bij eenvoudiger handelingen is het loggen van alle aparte stappen wat overdreven. Het zijn juiste de complexere handelingen waarbij het, voor de duidelijkheid, nodig blijkt te zijn. Als voorbeeld wederom de logging van het voorbereiden van een huwelijk.
Eerst zonder dat de tussenstappen gelogd worden:
Nu met logging van een deel van de uitgevoerde stappen.
Door de verschillende stappen (acties) te loggen wordt het verwerkingenlog duidelijker.
Een ander voorbeeld is het uitvoeren van een vertrouwelijk onderzoek. Eerst weer het verwerkingenlog zonder logging van de verschillende stappen.
Daarna het verwerkingenlog waarin de verschillende stappen wel gelogd worden.
Ook nu leidt het loggen van de verschillende stappen tot een duidelijker verwerkingenlog.
N.B. Deze separate registratie van deze acties is ook vanuit privacy by design beter. De eerste actie geeft immers niet aan wie de verdachte is. Mocht er ooit iets fout gaan met filtering van andere personen dan blijft de identiteit van de verdachte beter beschermd.
Zoals in het eerste deel van dit vraagstuk beschreven is, is het lastig genoeg om een actie ongedaan te maken. Als we de hele verwerking ongedaan moeten maken, wordt de techniek nog een stapje lastiger. We moeten dan onthouden welke acties we allemaal hebben uitgevoerd en deze in omgekeerde volgorde ongedaan maken.