Uitwisseltechnieken Notificeren

Deze pagina is onderdeel van de Architectuur Notificeren in het Federatief Datastelsel. Op deze pagina zijn een aantal technieken voor notificeren beschreven: API calls, queueing en streaming. In het Federatief Datastelsel wordt uitgegaan van API calls, omdat deze zich het best lenen voor notificeren over de grens van organisaties heen. Dat komt omdat zij gebaseerd zijn op (relatief eenvoudige) web standaarden en ook standaard door firewalls worden geaccepteerd.

API callbewerken

Voorbeelden: REST API call, webHooks

Voordelen

  • Eenvoudig te implementeren
  • Lage latency
  • Kan goed over organisatiegrenzen (firewalls) heen

Nadelen

  • Notificaties worden standaard niet bewaard en kunnen later niet herlezen worden
  • Aflevergaranties moeten applicatief worden gerealiseerd met retry-mechanismen
  • Afhankelijkheid van de beschikbaarheid van consumers
  • Beperkte schaalbaarheid door synchrone koppelingen

Typische toepassingsgebieden

  • Notificeren over organisatiegrenzen heen

Queueingbewerken

Voorbeelden: RabbitMQ, ActiveMQ, MQTT, AMQP, JMS

Voordelen

  • Hoge throughput mogelijk
  • Hoge schaalbaarheid
  • Aflevergaranties worden door middleware geboden
  • Geen afhankelijkheid van de beschikbaarheid van consumers

Nadelen

  • Vraagt implementatie en beheer van queueing middleware
  • Niet geoptimaliseerd op meerdere afnemers van één bericht
  • Notificaties worden niet bewaard en kunnen later niet herlezen worden
  • Hogere latency dan API calls
  • Kan niet goed over organisatiegrenzen (firewalls) heen

Typische toepassingsgebieden

  • Betrouwbare overdracht tussen applicaties van een organisatie
  • Integratie met legacy-systemen

Streamingbewerken

Voorbeelden: Apache Kafka, Pulsar

Voordelen

  • Hogere throughput mogelijk
  • Hoge schaalbaarheid (nog hoger dan queueing)
  • Aflevergaranties worden door middleware geboden
  • Geen afhankelijkheid van de beschikbaarheid van consumers
  • Notificaties worden historisch bewaard en kunnen later herlezen worden
  • Geoptimaliseerd op meerdere afnemers van één bericht

Nadelen

  • Vraag implementatie en beheer van relatief complexe streaming middleware
  • Hogere latency dan API calls
  • Kan niet goed over organisatiegrenzen (firewalls) heen

Typische toepassingsgebieden

  • Event-gedreven architecturen
  • Logging
  • Realtime dashboards en analytics