AVROTROS / Eurovision Song Contest

2 miljoen gelijktijdige gebruikers. Nul downtime. Op de grootste avond van het jaar.

Klant

AVROTROS / Eurovision Song Contest

Sector

Media & Entertainment

Opleveringen

iOS app | Android app | Python backend

Context

Het Eurovisie Songfestival is één van de best bekeken televisie-evenementen ter wereld. Voor AVROTROS betekende dit het ontwikkelen van een app die moest presteren voor meer gelijktijdige gebruikers dan de meeste platforms in een heel jaar zien, en waarbij een storing live zichtbaar zou zijn voor miljoenen kijkers.

De uitdaging zat niet alleen in de schaal, maar ook in de timing. Piekbelasting is precies te voorspellen en extreem geconcentreerd. Tijdens de stemperiode moet de infrastructuur binnen enkele seconden opschalen, stabiel blijven en weer afschalen, terwijl gebruikers op allerlei apparaten en netwerken tegelijkertijd dezelfde actie uitvoeren.

Elements werd ingeschakeld om de volledige mobiele app en de backend-infrastructuur voor het evenement te bouwen.

Wat we gebouwd hebben

Infrastructuur ontworpen voor piekbelasting, niet voor het gemiddelde

De architectuur is opgezet voor het meest veeleisende scenario: alle gebruikers die tegelijkertijd actief zijn. Dit vereiste een cloudinfrastructuur met automatische horizontale schaalbaarheid, load balancing en een speciale steminfrastructuur die losgekoppeld was van de rest van de app.

Native iOS en Android voor maximale betrouwbaarheid

We kozen voor native ontwikkeling voor beide platforms. Voor een app die slechts één kans krijgt om te presteren, was een cross-platform compromis geen optie. Elke platform specifieke optimalisatie telde mee, van de afhandeling van pushmeldingen tot energiezuinige achtergrondprocessen tijdens de liveshow.

Realtime stemmen bij maximale belasting

Het stemsysteem vereiste een backend die in staat was om dubbele stemmen te filteren, fraude-patronen te detecteren en resultaten realtime te aggregeren, terwijl er miljoenen verzoeken binnen een tijdsbestek van enkele minuten werden verwerkt. De steminfrastructuur werd volledig losgekoppeld van de content laag opgezet om kritieke storingspunten (single points of failure) te elimineren. Tijdens de liveshows werden de gemiddelden in de app elke 20 seconden bijgewerkt.

Resultaten

2M+ gelijktijdige gebruikers tijdens piekbelasting

7,6M stemmen tijdens semi-finale & finale

250K+ app downloads

0 downtime tijdens de live shows

Technologie keus

Waarom native in plaats van React Native of Flutter?

Voor de meeste apps is cross-platform de juiste keuze: één codebase, snellere iteratie en lagere kosten. Maar de Eurovisie-app is niet zomaar een app. De combinatie van piekbelasting op consumentenschaal, realtime streaming en een nultolerantie voor storingen vereiste dat elke laag van de stack maximaal voorspelbaar moest zijn.

Native Swift en Kotlin boden ons directe toegang tot platform specifieke performance-API's, nauwkeurige controle over geheugenbeheer tijdens piekbelasting en de zekerheid dat er geen abstractie laag tussen ons en de hardware zat op de momenten dat het er echt toe deed.

De app en de backend presteerden zeer stabiel tijdens de liveshows en liepen soepel synchroon met de uitzending.

Hoe we te werk gingen

In de weken voorafgaand aan het evenement hebben we uitgebreide belastingtests uitgevoerd: we simuleerden pieken op basis van het verwachte aantal gebruikers en voerden aanpassingen door totdat de infrastructuur in alle scenario's stabiel bleef. Tijdens het evenement zelf stond er een piketteam paraat, zoals gebruikelijk is voor een app in deze categorie.

De volgende stap

De voor het Eurovisie Songfestival ontwikkelde infrastructuur vormt de basis voor elk volgend grootschalig live-evenement. De patronen voor automatisch schalen, ontkoppelde steminfrastructuur en realtime aggregatie zijn herbruikbaar voor elke mediaorganisatie die te maken heeft met voorspelbare, maar extreem geconcentreerde piekbelasting.

Neem contact op:

Rogier de Graaf
Strategy Director
rogier.degraaf@elements.nl

Team as a service

Naast onze projectmatige samenwerkingen bieden we ook teamleden of een compleet ontwikkelteam als service aan. Meer weten? Stuur ons een bericht.