18 november 2024

Real-time resource planning: Optimalisatie met MongoDB en Elastic Cache

Ravikumar Sharma

Technisch consultant & AWS Solutions Architect

In het kort

Voor een innovatief SaaS resource management platform ontwikkelden we een geavanceerde planningoplossing. Het platform stelt gebruikers in staat om hun planning te stroomlijnen via een intuïtieve drag-and-drop interface. De grootse uitdaging? Het tonen van real-time berekeningen. We vertellen je hoe we het aanpakten.

Uitdaging: trage prestaties bij het samenvoegen van gegevens

Het platform is gebouwd met Node.js, Express.js, React.js en MongoDB en integreert naadloos met bestaande PSA-tools.
Eén van de kernfuncties van het platform? De tijdlijnweergave voor resource planning. Deze moet een uitgebreide matrix van gegevens tonen voor 50 tot 200 resources over 52 weken, inclusief projecten, taken en beschikbaarheid.

De initiële implementatie, die rechtstreeks data samenvoegt uit MongoDB, was te traag voor praktisch gebruik. Dit had een groot effect op de gebruikerservaring, vooral voor organisaties die meerdere teams en locaties beheren.

Identificatie van de bottleneck

De belangrijkste bottleneck? De real-time berekening van geaggregeerde waarden uit MongoDB. Hoewel MongoDB de gegevens uitstekend opsloeg, was de real-time verwerking van deze complexe dataset met vele variabelen (beschikbaarheid, vaardigheden, departement, etc.) niet optimaal om snel weer te kunnen geven.

Implementatie van een oplossing met Elastic Cache

Om de prestaties te verbeteren, implementeerden we Elastic Cache. Door strategisch belangrijke data vooraf samen te voegen en in cache op te slaan, konden we de responstijd drastisch verbeteren zonder in te leveren op functionaliteit.

Data-aggregatie

We ontwikkelden een slim aggregatiesysteem dat dagelijks data voorbewerkt en opslaat. Dit systeem houdt rekening met verschillende planningvariabelen zoals beschikbaarheid, vaardigheden en projectallocaties.

Bovendien implementeerden we 2 AWS Lambda-functies voor ‘cache warming’. Deze Lambda’s zorgen ervoor dat alle SaaS-klanten altijd over vooraf berekende data beschikken. Door deze functies én een periodiek script blijven de gecachte gegevens altijd actueel.

Snelle toegang door gecachte gegevens

Door gebruik te maken van Elastic Cache hadden we vrijwel direct toegang tot de planningdata. In plaats van complexe queries uit te voeren, haalt het platform nu vooraf geaggregeerde gegevens op. Dit resulteert in een veel snellere en soepelere gebruikerservaring bij het plannen en herplannen van resources.

Deze optimalisatie maakte het ook mogelijk om efficiënt verschillende tijdsperspectieven te tonen, van dag- tot jaaroverzichten. Planners kunnen nu snel schakelen tussen verschillende views zonder performance-problemen, essentieel voor het effectief toewijzen van resources.

Een geavanceerde resource planningoplossing inclusief real-time berekeningen. We maakten het met behulp van MongoDB en Elastic Cache.

De combinatie van MongoDB en Elastic Cache heeft geleid tot een robuuste oplossing die voldoet aan de hoge prestatie-eisen van moderne resource planning. Deze architectuur stelt het platform in staat om grote hoeveelheden planningdata efficiënt te verwerken en weer te geven. Dit resulteert in een soepele gebruikerservaring voor organisaties met een planningsuitdaging van elke omvang.

Meer weten? 

Heeft jouw organisatie ook uitdagingen met het verwerken en weergeven van grote hoeveelheden planningdata? Neem contact met ons op om te bespreken hoe wij kunnen helpen jouw applicatie te optimaliseren voor betere prestaties.

Contact