Steeds meer organisaties willen hun IT-landschap moderniseren door over te stappen op een event-driven architectuur. In plaats van omslachtige point-to-point integraties en grote monolitische systemen, bieden event-driven principes een flexibeler en sneller antwoord op wat er echt gebeurt in de business, en dat alles nagenoeg real-time.
Toch blijft er één uitdaging: hoe behoud je overzicht over al die events en zorg je dat je integratielogica niet versnipperd raakt? Veel organisaties starten met event-choreografie, waarbij elk systeem simpelweg “iets doet” op basis van inkomende events. Dat kan echter snel onoverzichtelijk worden. Onze oplossing is event-driven orchestratie, met een centrale “dirigent” die alles in goede banen leidt en alle stappen zichtbaar maakt. In deze blogpost lees je hoe we dit bij XTi aanpakken, waarom BPMN daarbij kan helpen en hoe je het concreet kunt toepassen.
In een klassieke integratie worden systemen vaak rechtstreeks (point-to-point) gekoppeld, waarbij elk systeem moet weten hoe het met elk ander systeem moet communiceren. Zo roept systeem A systeem B aan voor een bepaald proces, waarna systeem B systeem C aanroept, enzovoort. Naarmate het aantal systemen groeit, ontstaat er een wirwar van koppelingen (ook wel “spaghetti-integraties” genoemd) waardoor het onderhoud en de uitbreidbaarheid complex en duur worden.
Met een event-driven aanpak doorbreek je dat patroon: systemen publiceren (business) events op een centrale event broker (bijvoorbeeld Kafka), en andere systemen consumeren die. Denk aan een event als “OrderPlaced” of “DocumentApproved”. Je hoeft niet meer expliciet te weten welke systemen allemaal geïnteresseerd zijn in dat event. Je publiceert het, en de rest volgt automatisch via de broker. Zo heb je een duidelijk en schaalbaar publish-subscribe principe:
Maar, in een puur event-driven landschap (ook wel “choreografie” genoemd) kan de bedrijfslogica snel versnipperd raken. Omdat elk systeem autonoom beslist op basis van inkomende events, ontbreekt een overkoepelend overzicht. Dit leidt tot een wirwar aan regels en patronen, wat prima werkt zolang het eenvoudig blijft, maar al snel complex kan worden zodra processen in omvang en logica toenemen.
Hoe zorg je dat je wél alle voordelen van event-driven werken benut, maar niet verdwaalt in de onderlinge samenhang van processen? Event-driven orchestratie biedt uitkomst. Hierbij is er een centrale “dirigent” in de vorm van een BPM-engine die bepaalt welke acties op welk moment worden uitgevoerd. De event broker blijft als fundament bestaan, maar er komt een extra laag bij die zorgt voor regie en overzicht:
De onderstaande figuur toont de BPM-engine als centrale “dirigent” bij het uitvoeren van business processen. Vanuit deze engine worden “commands” verstuurd naar de verschillende systemen en worden “events” van die systemen ontvangen om processen te starten of verder te zetten.
Om de bedrijfsprocessen helder en gestructureerd te visualiseren, maken we gebruik van BPM. Dit helpt zowel IT als business om snel te begrijpen hoe de processen zijn opgebouwd en hoe ze samenhangen. In een event-driven context biedt dit een aantal belangrijke voordelen:
Hierdoor voorkom je dat de businesslogica verborgen raakt in je code van elk afzonderlijk systeem. De BPM-engine bepaalt welke acties een systeem moet uitvoeren en wanneer, terwijl elk systeem autonoom blijft in zijn eigen domein.
Stel, je wil een nieuwe klantervaring creëren: ergens online een bestelling plaatsen en binnen 30 minuten de bestelling op een fysieke locatie ophalen. De gewenste situatie is dat de klant vlot zijn bestelde product kan afhalen, zonder wachtrijen en zonder teleurstelling dat het nog niet beschikbaar is. Via een event storming sessie kan dit er als volgt uitzien:
Deze events kunnen we letterlijk vertalen naar een BPMN-model wat ons het volgende resultaat kan opleveren.
Event-driven orchestratie is een stap vooruit voor organisaties die wel de voordelen van publish-subscribe willen benutten, maar niet willen verzanden in talloze onoverzichtelijke integratiepatronen. Door een centrale proces-gedreven BPM-engine in te zetten behoud je zowel de losse koppeling van events als de controle en zichtbaarheid van een centrale workflow. Je krijgt:
Benieuwd hoe jouw organisatie kan profiteren van event-driven orchestratie met BPM? Aarzel niet om ons even te contacteren.