Together heroes in een ESB

Scenius Astrix
  • ESB
  • Automation
  • .NET 6
We ontwikkelde een servicebus voor Sidekix

Sidekix is als marketing fulfilment bedrijf verantwoordelijk voor de logistiek en uitvoering van marketingcampagnes

Denk aan het printen en versturen van mailingen, het bouwen van online campagne-flows en campagnesites, de klantenservice voor tv-shows en speciale events, de verzending van promotiematerialen en de logistiek van webwinkels. Bekende opdrachtgevers zijn o.a. KPN, de Nationale Postcode Loterij, VriendenLoterij, Royal Swinkels Family Brewers, Pathé Thuis en SwissSense.

Bij Sidekix draait alles om klanttevredenheid. Omdat het aantal en de diversiteit van klantorders snel groeien, terwijl levertijden alsmaar korter worden, is Sidekix continu bezig met het optimaliseren en automatiseren van haar bedrijfsprocessen. Een cruciale activiteit waar Scenius als automatiserings- en sparringpartner een steentje aan bijdraagt. Scenius ondersteunt Sidekix ook bij het bouwen van koppelingen, ontwikkelen van nieuwe software en faciliteren van specifieke secure hosting oplossingen voor klanten van Sidekix.

In het kort

Opdrachtgever

Sidekix

Looptijd

Doorlopend

Services

  • ESB
  • Automation
  • .NET 6

Sidekix Enterprise Service Bus

Als eerste project hebben we een Enterprise Service Bus (ESB) ontwikkeld. Deze zorgt voor het op een uniforme wijze ‘verbinden’ van ongelijksoortige en onafhankelijke interne en externe softwareapplicaties. Voor het streven van Sidekix om processen alsmaar te optimaliseren, is het nodig dat de diversiteit aan softwareapplicaties zich meer en meer gaan gedragen als één geïntegreerd systeem. Wat ook nodig is om op basis van data en feedback een lerend systeem te creëren.

De ESB zorgt voor het verbinden van o.a. CRM-, ERP- en WMS-softwaresystemen, alsook commercial off-the-shelf platformen zoals BigCommerce en SalesForce en tenslotte klantspecifieke custom made applicaties.

Hoe deze service bus eruitziet

"Scenius heeft ons maatwerk geleverd waar we enorm blij mee zijn"

- Tjeerd, Sidekix

Primaire taken van de Sidekix-ESB

Realisatie

De Sidekix ESB is vormgegeven als een netwerk van meerdere microservices die elk één deelverantwoordelijk vervullen van de Sidekix business automation. Bijvoorbeeld het ophalen van nieuwe inkooporders bij aangesloten partners. Of het ophalen van actuele voorraadstanden en deze vervolgens doorzetten naar diverse andere systemen aangesloten op de Enterprise Service Bus.

Voor de onderliggende software-stack is gekozen voor .NET 6 (voorheen dotnet core). Een voor Scenius zeer vertrouwd software platform van Microsoft met een gewaarborgde support. Voor de communicatie tussen de diverse services maken we gebruik van RabbitMQ, een populaire en welbekende Message Broker.

De Sidekix ESB draait “native” op Kubernetes; een Kubernetes-omgeving is het uitgangspunt voor deployment. Aangezien reliability en uptime belangrijke metrieken zijn voor de service bus, is er gekozen om hiervoor een cluster in te richten op het Google Cloud Platform. Het builden, packagen en deployen van de componenten die de Sidekix ESB vormen, gebeurt volledig automatisch vanuit het Scenius-CI/CD-platform.

Waar het ophalen van data bij een bronstation en het vervolgens afleveren bij één of meerdere eindstations slechts één deel van een dergelijke integratieklus is, blijft het inzichtelijk houden van het berichtenverkeer in een service bus een cruciaal punt. De realiteit leert dat niet alle data die het systeem in gaat volledig of correct is. Daarbij dient er rekening gehouden te worden met het feit dat niet alle externe of interne afhankelijkheden altijd beschikbaar zijn. Met behulp van de ElasticSearch (ELK) stack, Prometheus en Grafana zijn er extra faciliteiten om zowel snel een overzicht te krijgen van de staat van de service bus, als de mogelijkheid om voor individuele berichten inzage te geven in hun verloop door de service bus, inclusief data en gerelateerde logging-regels en worden we gealarmeerd zodra zaken niet verlopen zoals ze zouden horen. Zo worden fouten en inconsistenties opgevangen vóórdat ze problemen veroorzaken.

Ook interessant