Caching van ADP en Relaties
Technische documentatie
Overzicht
De functionaliteit Caching van ADP en Relaties introduceert een multi-level caching-mechanisme om de performance van ADP‑uitvoeringen aanzienlijk te verbeteren. Vanaf release 0.6 brengt deze feature een breaking change met zich mee: de applicatie vereist nu een Redis-cache store. Een Redis-container moet worden uitgerold zoals gedefinieerd in de Helm‑charts.
Dit document beschrijft de architectuur, configuratie-opties, cache‑key strategie en operationele overwegingen voor het gebruik van caching binnen ADP's en hun Relaties.
Architectonisch Concept
Een ADP (Aggregated Data Profile) bestaat uit een boomstructuur van Relaties, waarbij elke relatie bijdraagt aan het verzamelen en transformeren van data. Omdat ADP‑uitvoeringen computationeel zwaar kunnen zijn—vooral bij diep geneste relaties—maakt caching deze operaties aanzienlijk sneller.
Caching wordt geïmplementeerd op twee onafhankelijke niveaus:
ADP‑niveau caching
Relatie‑niveau caching
Beide niveaus maken gebruik van Redis als achterliggende cache store.
1. ADP‑niveau Caching
Doel
Dit niveau cachet de uiteindelijke output van een ADP‑uitvoering. Dit is vooral nuttig wanneer herhaalde requests dezelfde configuratie en inputparameters gebruiken.
Configuratie
ADP‑niveau caching wordt geconfigureerd op de ADP zelf:
Cache In-/Uitschakelen — Boolean toggle om caching aan of uit te zetten.
TTL (Time To Live) — Duur (in milliseconden) waarin het resultaat wordt opgeslagen in Redis.
Handmatig Cache Verwijderen — Een knop in de UI maakt het mogelijk om de cache van de ADP handmatig te verwijderen, handig tijdens debugging, testen of support.
Cache Key Signatuur
Elke ADP‑uitvoering genereert een cache key signatuur. Deze bepaalt of een request gelijk is aan een eerder request.
De ADP‑cache key wordt opgebouwd uit:
ADP ID
Transform-configuratie (JQ)
Filterparameters
Sorteerparameters
Deze onderdelen bepalen samen de uniciteit van het verzoek. Als alle onderdelen overeenkomen met een bestaande key, wordt het gecachte resultaat teruggegeven.
2. Relatie‑niveau Caching
Doel
Relatie‑niveau caching maakt het mogelijk om subtrees van een ADP te cachen. Dit is vooral nuttig wanneer dure of trage API‑calls of transformaties plaatsvinden diep in de relatiestructuur.
Configuratie
Elke Relatie kan onafhankelijk instellen:
Cache In-/Uitschakelen
TTL (milliseconden)
Cache Key Signatuur
De cache key voor een Relatie wordt bepaald door:
Endpoint‑mapping (uniek per relatie)
Eindtransformatie (JQ)
Filterparameters op relatieniveau
Sorteerparameters op relatieniveau
Elke relatie gebruikt een eigen key namespace om conflicten met ADP‑niveau caching te voorkomen.
Breaking Change in Release 0.6
Vanaf release 0.6 is Redis verplicht voor ADP- en Relatie‑caching.
Vereisten
Een Redis‑container moet worden geïnstalleerd.
Deployments zonder Redis zullen niet correct functioneren en caching zal niet beschikbaar zijn.
Zorg ervoor dat alle omgevingen (test, acceptatie, productie) Redis bevatten als onderdeel van hun infrastructuur.
Handmatige Operaties
ADP‑cache leegmaken
Een clear cache‑knop is beschikbaar in het ADP‑configuratiescherm.
Use‑cases:
Testen van nieuwe transformaties
Debuggen van inconsistenties
Forceren van een volledige heruitvoering
Sequence diagram – Caching scenario ADP DEMO
Last updated