Waarom realtime?
Gebruikers verwachten in 2026 dat software direct reageert. Niet na een paginaverversing, niet na vijf seconden polling, maar direct. Die verwachting is gevormd door tools als Slack, Figma en Google Docs, waar wijzigingen in real-time zichtbaar zijn voor iedereen.
Voor bedrijfssoftware geldt dezelfde verwachting. Een ordermanager die pas na een refresh ziet dat er een nieuwe order is binnengekomen, mist urgentie. Een dashboard dat elke 30 seconden herlaadt, toont verouderde data. Een medewerker die niet ziet dat een collega hetzelfde record aan het bewerken is, creëert conflicten.
Realtime features lossen deze problemen op door data direct te pushen naar alle verbonden clients zodra er iets verandert.
Technologieën
WebSockets
WebSockets openen een permanente, bidirectionele verbinding tussen client en server. Beide kanten kunnen op elk moment berichten sturen. Dit is ideaal voor toepassingen waar interactie van beide kanten nodig is: chatfuncties, collaborative editing, realtime games of interactieve dashboards waar gebruikers ook acties uitvoeren.
Server-Sent Events (SSE)
SSE is eenvoudiger dan WebSockets en biedt eenrichtingsverkeer: de server stuurt updates naar de client. Dit is perfect voor scenario's waar je alleen data van server naar client hoeft te pushen: live dashboards, notificaties, statusupdates. SSE is makkelijker te implementeren en werkt goed met bestaande HTTP-infrastructuur.
Wanneer welke technologie?
De keuze hangt af van je use case. Een vuistregel:
- Alleen updates ontvangen (dashboards, notificaties, feeds) → SSE
- Interactie in twee richtingen (chat, editing, gaming) → WebSockets
- Complexe realtime logica (presence detection, kanalen, autorisatie) → WebSocket-framework zoals Laravel Reverb
Realtime in Laravel
Laravel heeft broadcasting als eersteklas feature ingebouwd. Het systeem werkt met events en kanalen:
- Events — Wanneer er iets gebeurt in je applicatie (een order wordt geplaatst, een status verandert), wordt een event gebroadcast.
- Kanalen — Events worden verstuurd via kanalen. Publieke kanalen voor algemene updates, privékanalen voor gebruikersspecifieke data, presence-kanalen om te zien wie er online is.
- Drivers — Laravel ondersteunt meerdere broadcasting drivers: Reverb (open-source, self-hosted), Pusher (managed service) of Ably.
Laravel Reverb is sinds 2024 de officiële open-source WebSocket-server voor Laravel. Het is performant, eenvoudig op te zetten en integreert naadloos met het Laravel-ecosysteem. Voor teams die geen externe dienst willen gebruiken, is het de aangewezen keuze.
Praktische toepassingen
Live dashboards
Een dashboard dat automatisch bijwerkt wanneer er nieuwe data binnenkomt. Orderaantallen, omzetcijfers, voorraadniveaus — alles up-to-date zonder handmatig verversen. Combineer dit met visuele indicatoren (een flash of animatie bij wijzigingen) voor maximale impact.
Instant notificaties
Geen paginaverversing nodig om te zien dat er een nieuwe taak is toegewezen, een goedkeuring is aangevraagd of een order is binnengekomen. Notificaties verschijnen direct in de applicatie.
Collaborative features
Meerdere gebruikers die tegelijkertijd aan hetzelfde werken: een document bewerken, een planning aanpassen of samen een configuratie doorlopen. Presence-indicatoren tonen wie er online is en waar ze mee bezig zijn.
Statusupdates
Lange processen — importeren, exporteren, berekeningen — waarbij de voortgang live zichtbaar is. Geen vage spinner, maar een concrete voortgangsbalk die in realtime bijwerkt.
Realtime is geen technische feature. Het is een gebruikerservaring. Mensen verwachten dat software direct reageert, net als de tools die ze privé gebruiken.
Schaalbaarheid
Realtime features brengen een architecturele verschuiving met zich mee. Traditionele webapplicaties zijn stateless: elke request is onafhankelijk. Realtime verbindingen zijn stateful: ze blijven open en verbruiken resources zolang de gebruiker verbonden is.
Waar je rekening mee moet houden:
- Verbindingslimiet — Elke verbonden client houdt een connectie open. Bij honderden gelijktijdige gebruikers moet je server hier op ingericht zijn.
- Horizontaal schalen — Bij meerdere servers heb je een pub/sub systeem nodig (Redis) zodat events op alle servers aankomen, niet alleen op de server waar het event vandaan komt.
- Reconnectie — Verbindingen vallen uit. Je client-side code moet automatisch reconnecten en gemiste events ophalen.
- Autorisatie — Niet elke gebruiker mag alle data zien. Privékanalen zorgen ervoor dat gevoelige data alleen bij geautoriseerde gebruikers terechtkomt.
Conclusie
Realtime features zijn geen luxe meer maar een verwachting. Of het nu gaat om live dashboards, instant notificaties of collaborative editing — gebruikers verwachten dat software direct reageert. Met Laravel's ingebouwde broadcasting en tools zoals Reverb is de drempel lager dan ooit om realtime functionaliteit toe te voegen aan je applicatie.
Wil je realtime features toevoegen aan je software? Neem contact op — we helpen je bij het ontwerpen en bouwen van de juiste oplossing.