Real-time berichten verwerking in een event driven micro-service architectuur

Site Info Support B.V.

In een event driven microservice architectuur verwerken we berichten die binnenkomen op een servicebus. Een microservice abonneert zich op een topic en verwerkt alle berichten die gestuurd worden. De microservice verwerkt de berichten en stuurt nieuwe berichten naar de servicebus. Iedere microservice is een deployment unit die berichten kan consumeren en verwerken.

De architectuur kan een aantal berichten snel verwerken. Als er een groter aantal berichten wordt gestuurd, dan ontstaat er een latency die weggewerkt moet worden. Dit kan gebeuren zodra we IoT, telemetry of social media data willen toevoegen als berichten. Er zal een oplossing bedacht moeten worden om binnen deze microservices berichten near real-time te kunnen verwerken.

Streaming biedt een mogelijkheid om berichten near real-time te verwerken. Maar we weten nog niet hoe streaming het beste kan worden toegepast in een microservice architectuur met object georiënteerde code. Hier draait deze opdracht om.

Binnen Info Support hebben we veel oplossingen met een event driven microservice architectuur. Voor de afstudeeropdracht krijg je een template van deze architectuur met demo-data die je kunt gebruiken als basis voor jouw afstudeeropdracht.

De template biedt de mogelijkheid om een groot volume aan nieuwe berichten te sturen naar de servicebus, waarna de microservices de berichten kunnen verwerken. De template is op basis van een Azure Event Hub met Kafka API. De microservices gebruiken een Kafka consumer om berichten te ontvangen en te verwerken.

De opdracht

Onderzoek welke mogelijkheden door middel van streaming de verwerking van berichten naar near real-time kunnen brengen. Welke methoden zijn er om berichten sneller te verwerken zoals streaming, virtual actor model? Welke methode/oplossing past het beste bij een microservice event based architecture en hoe maak je deze oplossing testbaar? Bewijs dat de oplossing het beste past door middel van een PoC.

De oplossing moet voldoen aan de volgende voorwaarden:

  • De latency van het verwerken van berichten is verminderd
  • Componenten van de oplossing kunnen gedeployed worden middels CD/CI
  • Geprogrammeerde code voldoet aan kwaliteitseisen
  • Componenten worden los getest
  • Oplossing als geheel wordt getest

 

Kijk voor al onze afstudeeropdrachten op afstuderenbijinfosupport.com

Om op deze vacature te solliciteren bezoek je carriere.infosupport.com.