De uitdaging
eBlox Payroll combineerde een mature C++-applicatie met Btrieve-data en bedrijfslogica die niet zomaar in een nieuw systeem kon worden nagebouwd. Tegelijk hadden gebruikers webtoegang nodig en moest het platform de operationele kwaliteiten van een enterpriseapplicatie bieden. Het project moest daarom de levering van het product moderniseren zonder de bewezen payrollkern erachter weg te gooien.
Rol in het deliveryteam
David werkte als software engineer in een Agile Scrumteam van tien mensen. Zijn bijdrage liep over verschillende onderdelen van de oplossing: applicatievirtualisatie, het Angular-weboppervlak, datasynchronisatie, monitoring en deliveryautomatisering. Werken over die grenzen heen was belangrijk omdat de gebruikservaring, zoekdata en operationele tooling allemaal afhankelijk bleven van dezelfde betrouwbare desktopapplicatie.
De desktopapplicatie via het web ontsluiten
Thinfinity werd gebruikt om de bestaande C++-applicatie te virtualiseren en via een browser beschikbaar te maken. Zo ontstond een praktische brug tussen het mature desktopproduct en een modern webkanaal. Een Angular-frontend leverde de omliggende webervaring, zodat toegang en navigatie konden verbeteren terwijl het gespecialiseerde gedrag van eBlox behouden bleef.
Deze aanpak koppelde webtoegang niet aan een volledige herschrijving van de payrollengine. Bestaande mogelijkheden konden blijven draaien terwijl het team er webgerichte functionaliteit rond bouwde.
Operationele data en zoekdata synchroniseren
Informatie uit de Btrieve-bron moest beschikbaar worden in Microsoft SQL Server en Elasticsearch. RabbitMQ coördineerde de synchronisatiestroom tussen deze systemen. Messaging maakte de databeweging expliciet en liet de zoeklaag en webgerichte services evolueren zonder van de oorspronkelijke database een rechtstreekse afhankelijkheid voor elke nieuwe functie te maken.
Elasticsearch ondersteunde snelle zoekmogelijkheden over de gesynchroniseerde informatie, terwijl SQL een relationele bestemming bood voor services die een conventioneler datamodel nodig hadden.
Observability en geautomatiseerde delivery
Enterprise-delivery vroeg meer dan functionele code. Dynatrace werd ingezet om de prestaties van de applicatie te begrijpen, terwijl Splunk operationele logs en events centraliseerde. Azure DevOps ondersteunde de serveropstelling en geautomatiseerde deployments. Zo kreeg het team een herhaalbare route van een afgewerkte wijziging naar een draaiende omgeving en bleef ontwikkelwerk verbonden met het gedrag van het systeem in productie.
Resultaat
Het project maakte de gevestigde payrollapplicatie toegankelijk via een modern webkanaal en behield tegelijk haar mature kern. De omliggende architectuur voegde gesynchroniseerde zoekdata, monitoring, centrale logging en herhaalbare deploymentpraktijken toe. SD Worx kreeg zo een gecontroleerd transitiepad waarin gebruikerstoegang en operationele zichtbaarheid konden verbeteren zonder het bedrijfskritische C++-product onmiddellijk te moeten vervangen.
