Kennisbank

Durable Object: de bouwsteen die geheugen en logica combineert op het randnetwerk

Bijgewerkt: 12 oktober 2026 · 5 min leestijd

Een Durable Object is een stukje software van het bedrijf Cloudflare dat twee dingen combineert die normaal gescheiden zijn: rekenkracht (code die iets uitvoert) en geheugen (data die onthouden wordt). Het bijzondere is dat elk Durable Object maar op precies één plek tegelijk bestaat, ook al draait het op een wereldwijd netwerk met duizenden computers. Je kunt het vergelijken met een klein kantoortje met één bureau en één archiefkast: er werkt daar altijd maar één medewerker, dus die kan nooit met zichzelf in de weg lopen of tegenstrijdige aantekeningen maken.

Stel je een chatapp voor met duizenden chatrooms. Normaal gesproken moet een server bijhouden wie er in welk gesprek zit en in welke volgorde berichten binnenkomen, wat lastig wordt als meerdere servers gelijktijdig dezelfde groep bedienen. Met Durable Objects krijgt elke chatroom zijn eigen, uniek aan te roepen object: altijd hetzelfde "kantoortje", overal op aarde bereikbaar via internet, dat zelf onthoudt wie er aanwezig is en in welke volgorde berichten moeten. Omdat er maar één exemplaar van dat object bestaat, ontstaat er nooit verwarring over wie het laatste woord had.

Wat is het precies?

Durable Objects zijn een uitbreiding op Cloudflare Workers, het platform waarmee ontwikkelaars kleine stukjes code (geschreven in JavaScript of vergelijkbare talen) laten draaien op honderden Cloudflare-datacenters tegelijk, dicht bij de gebruiker. Normale Workers zijn "stateless": ze hebben geen geheugen tussen aanroepen en elke aanroep kan op een willekeurige locatie worden afgehandeld.

Een Durable Object doorbreekt dat met drie stappen. Eerst krijgt elk object een unieke naam of identificatiecode, bijvoorbeeld de naam van een chatroom of het nummer van een boeking. Vervolgens zorgt Cloudflare's netwerk ervoor dat alle verzoeken voor die ene identificatiecode altijd naar hetzelfde fysieke exemplaar worden gestuurd, ongeacht vanuit welk land de aanvraag komt. Dat exemplaar wordt meestal "vastgepind" op de locatie waar het voor het eerst werd aangeroepen.

Daardoor kan dat object zijn eigen geheugen en opgeslagen data veilig bijhouden zonder ingewikkelde vergrendelingen (locks) of afstemming met andere servers nodig te hebben: er is toch maar één die ermee werkt. Elk object heeft bovendien een eigen opslagplek die direct aan het object vastzit, in plaats van in een centrale database ergens anders op aarde. Sinds 2024 gebruikt die opslag een ingebouwde SQLite-database (een lichte, veelgebruikte databasevorm) per object, wat doorzoekbare en snellere opslag mogelijk maakt. Daarnaast kunnen Durable Objects een "alarm" instellen dat ze later automatisch wakker maakt, en kunnen ze langdurige verbindingen zoals WebSockets onderhouden terwijl ze zelf tussendoor "slapen" om rekenkosten te besparen.

Wat wil men ermee bereiken?

Het doel is om applicaties te bouwen die zowel snel als betrouwbaar consistent zijn, zonder dat ontwikkelaars zelf een database-server moeten beheren. Traditioneel moest je kiezen: of je gebruikte een snelle, wereldwijd verspreide opslag die soms tijdelijk inconsistente antwoorden geeft (bijvoorbeeld omdat twee datacenters nog niet zijn bijgewerkt), of je gebruikte één centrale, consistente database die voor gebruikers ver weg traag aanvoelt.

Durable Objects proberen dat dilemma te verzachten door consistentie en locatie aan elkaar te koppelen: omdat er maar één exemplaar is, is het antwoord altijd actueel en correct, en omdat dat exemplaar dicht bij de eerste gebruiker wordt geplaatst, blijft de vertraging voor die groep gebruikers laag. Dit is vooral waardevol voor coördinatietaken: wie heeft deze stoel al geboekt, wie is de leider in dit spel, hoeveel aanvragen heeft dit IP-adres al gedaan. Het bredere doel past in de trend van "edge computing", waarbij rekenwerk dichter bij de gebruiker wordt uitgevoerd in plaats van in enkele verre centrale datacenters.

Voorbeelden uit de praktijk

Bij de introductie van Durable Objects in 2020 toonde Cloudflare een eigen chatroom-demo waarin elke chatroom werd aangestuurd door precies één Durable Object, als directe illustratie van het concept.

PartyKit is het bekendste onafhankelijke project dat volledig op Durable Objects is gebouwd. Het werd rond 2022-2023 opgezet door ontwikkelaar Sunil Pai als framework voor realtime samenwerking: live cursors in gedeelde documenten, multiplayer spelletjes en chat. Cloudflare nam PartyKit in 2024 over en integreerde het team in het eigen platform.

Cloudflare zet de techniek ook in eigen producten in; zo wordt een vergelijkbare aanpak gebruikt om per-bezoeker toestand bij te houden in tools voor het beheren van externe scripts op websites. Daarnaast noemt Cloudflare in eigen architectuurvoorbeelden sinds de algemene beschikbaarheid in 2022 veelvuldig twee praktijktoepassingen: reserveringssystemen die dubbele boekingen van dezelfde stoel of tafel moeten voorkomen, en rate limiters die bijhouden hoeveel verzoeken een gebruiker binnen een bepaalde tijd heeft gedaan.

Voor dit soort toepassingen was de introductie van de WebSocket Hibernation API in 2023 een belangrijke stap: daardoor konden apps met veel permanente verbindingen, zoals chat- en multiplayertoepassingen, flink besparen op rekenkosten omdat een object tussen berichten door uit het geheugen mag verdwijnen zonder de verbinding te verbreken.

Hoe ver is de techniek?

Durable Objects gingen in september 2020 in open beta en werden in september 2022 algemeen beschikbaar verklaard, wat betekent dat Cloudflare de techniek geschikt acht voor productiegebruik met garanties over stabiliteit. Sindsdien zijn er gestaag functies bijgekomen: de alarmfunctie voor geplande taken, de WebSocket Hibernation API in 2023 voor kostenbesparing, en in 2024 een nieuwe opslaglaag op basis van SQLite die rijkere, doorzoekbare data-opslag mogelijk maakt naast de oorspronkelijke eenvoudige key-value-opslag.

Toch zijn er duidelijke grenzen en knelpunten. Omdat de techniek bewust op één exemplaar per object draait, kan dat exemplaar nooit actief op meerdere plekken tegelijk schrijven; dat is een ontwerpkeuze voor consistentie, maar betekent dat gebruikers die ver van de vastgepinde locatie zitten altijd iets meer vertraging ondervinden. Elk verzoek heeft ook een beperkte rekentijd en geheugenruimte, wat het ongeschikt maakt voor zware, langdurige berekeningen. De techniek is bovendien volledig eigendom van Cloudflare: het is geen open standaard en er bestaat geen directe, identieke versie bij concurrenten, wat ontwikkelaars vastlegt aan dit ene platform ("vendor lock-in"). Het kostenmodel, gebaseerd op een combinatie van verzoeken, rekentijd en opslag, kan bij grote schaal ook lastig te voorspellen zijn.

Wie werken eraan?

Durable Objects zijn uitsluitend ontwikkeld en beheerd door Cloudflare, het Amerikaanse bedrijf dat vooral bekend is van zijn wereldwijde netwerk voor beveiliging en snelheid van websites. Er is geen open-sourceconsortium of academische instelling die de techniek zelf beheert, al bouwt het conceptueel voort op het "actor-model", een manier van programmeren uit de jaren zeventig die teruggaat op werk van informaticus Carl Hewitt en die later verder werd uitgewerkt in onderzoek zoals Microsoft Researchs Orleans-project.

Rond Cloudflare is een klein ecosysteem van bedrijven en makers ontstaan die op Durable Objects bouwen, waarvan PartyKit (nu onderdeel van Cloudflare zelf) het meest geciteerde voorbeeld is. Vergelijkbare, maar niet identieke ideeën zijn te vinden bij andere clouddiensten: Microsoft biedt met Durable Functions en het oudere Orleans-platform een eigen vorm van het actor-model binnen Azure, en Deno Deploy en Fly.io bieden ieder hun eigen, anders opgezette combinaties van verspreide opslag en rekenkracht. Geen van deze alternatieven is echter een exacte tegenhanger van Cloudflare's aanpak.

Verder lezen