diff --git a/API-strategie-algemeen/Architectuur/architectuur.md b/API-strategie-algemeen/Architectuur/architectuur.md index fe2c75b9..8a2c7398 100644 --- a/API-strategie-algemeen/Architectuur/architectuur.md +++ b/API-strategie-algemeen/Architectuur/architectuur.md @@ -612,55 +612,3 @@ TBD: input van Eelco. --> - [NORA - Beschikbaarheid principe](https://www.noraonline.nl/wiki/Beschikbaarheid) - [NORA - Integriteit principe](https://www.noraonline.nl/wiki/Integriteit) - [NORA - Vertrouwelijkheid principe](https://www.noraonline.nl/wiki/Vertrouwelijkheid_%28principe%29) - -## Event Driven Architecture (EDA) - -### Inleiding -Event-driven architectuur (EDA) is een software design pattern dat bij de ontwikkeling van systemen uitgaat van uitwisseling van gebeurtenissen tussen componenten. Dit type architectuur wint aan populariteit omdat dit bepaalde voordelen met zich meebrengt, vooral als het gaat om schaalbaarheid en flexibiliteit. -Event-driven Architecture heeft een relatie met API Architectuur in de zin dat dataresource API’s zich kunnen bevinden in een Event Driven omgeving en ook worden doorgaans API’s gebruikt om gebeurtenissen aan te maken en te verwerken. - -### Event Driven Architectuur concepten - -Een EDA bestaat uit event producenten die events produceren en doorgeven aan event consumers welke luisteren naar de events en hierop reageren. - -![Event Driven Architectuur diagram](../../overleggen/Werkgroep%20API%20architectuur/uitwerkingen/media/api-eda.png) - -Figuur 9: Basispatroon waarbij een Producer gebruik maakt van een Intermediair voor het verstrekken van notificaties aan Consumers - -* De "Producer" is een specifieke instantie, proces of apparaat dat de Gebeurtenis aangeeeft - -* Een ‘Consument’ ontvangt de gebeurtenis en handelt ernaar. Het gebruikt de context en gegevens om een bepaalde logica uit te voeren, wat kan leiden tot het optreden van nieuwe gebeurtenissen. - -* Een "Intermediair" ontvangt een bericht met daarin een gebeurtenis, met als doel dit door te sturen naar de volgende ontvanger, die een andere tussenpersoon of een consument kan zijn. Een typische taak voor een tussenpersoon is om de gebeurtenis naar ontvangers te routeren op basis van de informatie in de context. - -Het Publish-Subscribe patroon is een bekend en veel toegepaste patroon bij EDA. -Dit patroon beschrijft in de kern hoe: -- Aanbieders/Producers gegevens publiceren over plaatsgevonden gebeurtenissen (‘Publish’) -en -- Afnemers/Consumers zich abonneren (‘Subscribe’) om na het publiceren van gegevens over bepaalde gebeurtenissen notificaties te ontvangen. - -### Voordelen EDA - -EDA brengt voordelen met zich mee op het gebied van flexibiliteit en robuustheid van de IT-Architectuur van een organisatie door de mate van ontkoppeling en asynchrone verwerking die deze architectuur mogelijk maakt. - -Hieronder een aantal voordelen - -* Ontkoppeling van systemen : Deze architectuur is van nature losjes gekoppeld, omdat applicaties met elkaar communiceren via gebeurtenissen (en een tussenlaag). Dat maakt het eenvoudiger om applicaties onafhankelijk van elkaar te ontwikkelen, testen en implementeren. - -* Asynchrone communicatie : In een EDA hoeven aanvragen niet op elkaar te wachten. -* Schaalbaarheid en gemak van het toevoegen van nieuwe consumenten : EDA maakt het gemakkelijk om nieuwe applicaties of diensten te implementeren en te integreren zonder de bestaande te beïnvloeden. -* Hoge doorvoer en low latency : Een gebeurtenis gestuurde architectuur kan een groot aantal gebeurtenissen met een low latency verwerken. - - -### Uitdagingen - -* Complexiteit : De samenwerking tussen grote aantallen kleine componenten maakt het moeilijker om proces-flows te monitoren ; -* Testen : Door asynchrone verwerking en complexiteit is het moeilijker om een testomgeving en acceptatie omgeving te maken die gelijk is aan de productieomgeving - -### Meer informatie -Zie ook de gedetailleerde uitwerking van EDA in de context van het project Notificatieservices en de CloudEvents standaard: -* [Notificatie services & EDA](../../overleggen/Werkgroep%20API%20architectuur/uitwerkingen/media/notificatieservices_architectuur.pdf) -* [CloudEvents standaard](https://logius.nl/domeinen/gegevensuitwisseling/nl-gov-profile-cloudevents) - - - diff --git a/media/api-eda.png b/media/api-eda.png deleted file mode 100644 index 6e35b2dd..00000000 Binary files a/media/api-eda.png and /dev/null differ diff --git a/overleggen/Werkgroep API architectuur/uitwerkingen/media/api-eda.png b/overleggen/Werkgroep API architectuur/uitwerkingen/media/api-eda.png deleted file mode 100644 index 6e35b2dd..00000000 Binary files a/overleggen/Werkgroep API architectuur/uitwerkingen/media/api-eda.png and /dev/null differ diff --git a/overleggen/Werkgroep API architectuur/uitwerkingen/media/notificatieservices_architectuur.pdf b/overleggen/Werkgroep API architectuur/uitwerkingen/media/notificatieservices_architectuur.pdf deleted file mode 100644 index eb968930..00000000 Binary files a/overleggen/Werkgroep API architectuur/uitwerkingen/media/notificatieservices_architectuur.pdf and /dev/null differ