Een app voor de Huishoudbeurs met 50.000 downloads - WebFlight

Blog

Een app voor de Huishoudbeurs met 50.000 downloads

Begin dit jaar hebben wij een app gebouwd voor de Huishoudbeurs in de RAI. De app werd boven verwachting veel gedownload en we kregen te maken met flinke pieken in gebruikers. Welke impact heeft dit op de ontwikkeling van de app?

Velen van jullie zullen al bekend zijn met de Huishoudbeurs. Een beurs voor vrouwen die een dagje uit willen. Standhouders met allerhande producten en verschillende shows en workshops. Om de bezoekers van de Huishoudbeurs een optimale beleving te kunnen geven, heeft de RAI ons gevraagd een app te ontwikkelen. Via deze app kunnen gebruikers het programma inzien, standhouders opzoeken en aanvullende informatie over de beurs bekijken. Om ook in de aanloop naar de Huishoudbeurs bezoekers naar de app te trekken, hebben we een spelelement toegevoegd aan de app. Elke dag van 20:00 tot 21:00 uur hadden de gebruikers de mogelijkheid om een kraskaartje te krassen en daarmee prijzen te winnen die opgehaald kunnen worden op de beurs.

De backend voor de app hebben wij gebouwd op het Mendix-platform met een aantal koppelingen met andere diensten om de app optimaal te laten werken. Zo hebben wij voor quasi-statische data in de app gebruik gemaakt van API caching, waardoor de data sneller kan worden teruggekoppeld. Daarnaast hebben we voor afbeeldingen een koppeling gemaakt met een Image CDN (Content Delivery Network). Door deze koppelingen zorgen wij ervoor dat de backend wordt ingezet voor het afhandelen van de business logica. Voordat de app live ging hebben we distributed load tests uitgevoerd voor verschillende scenario’s om er zeker van te zijn dat de applicatie het aantal gebruikers aankan.

In de eerste 2-3 weken dat de app live was is deze 50.000 keer gedownload. Daarnaast waren de gebruikers meteen erg fanatiek in het krassen van de kaartjes, waardoor we elke dag om 20.00 uur een piek in gebruikers zagen. We zagen dat door deze piek de app het zwaar had om de hoeveelheid gebruikers te verwerken. Om problemen te voorkomen hebben we opnieuw load tests gedaan, met aangepaste scenario’s. Hiermee kunnen we kijken of de app ook blijft functioneren bij een piekbelasting.

Uit de 2e serie load tests kwam naar boven dat we de architectuur van de app moesten aanpassen. We hebben extra services rondom Mendix ingezet om de onnodige belasting weg te halen. Allereerst hebben we gebruik gemaakt van AWS SQS (Amazon Web Services, Simple Queue Services), hierdoor worden de verzoeken van de kraskaartjes tijdelijk op een andere server gezet totdat de server van Mendix weer ruimte heeft om de verzoeken te verwerken. Zoals de naam al zegt: Een (virtuele) rij. Daarnaast hebben we Redis (in-memory data store) ingezet. Op deze manier zijn de voorraden van de prijzen altijd correct, ook al worden prijzen tegelijkertijd weggegeven. Verder hebben we de API caching verplaatst naar Amazon S3 (AWS).

Het is dus erg belangrijk om tijdig goede load tests uit te voeren en hier genoeg tijd aan te besteden. Als je goed in de gaten houdt wanneer dit nodig is kun je tijdig schakelen en aanpassingen doorvoeren waar nodig. Mendix is een “swiss army knife”, het kan heel veel maar heeft, zoals elk platform, ook grenzen. Mocht je die grenzen tegenkomen, dan zijn er genoeg gespecialiseerde services op de markt beschikbaar om de waarde van Mendix te vergroten.

Want wij blijven erbij:

‘Gebruik techniek waar het voor gemaakt is’