
Durable Object
Ein Durable Object ist ein kleines Programmstück im Internet, das eine eigene Identität und einen eigenen dauerhaften Speicher besitzt und von dem es weltweit immer nur eine einzige laufende Kopie gibt. Diese Bauweise stammt vom Anbieter Cloudflare und löst ein klassisches Problem: mehrere Server, die gleichzeitig dieselben Daten verändern wollen.
Wenn eine Webseite oder App Daten verarbeitet, läuft das Programm dafür meist nicht auf deinem Handy, sondern auf einem fremden Rechner im Internet. Solche Rechner stehen in großen Hallen und bedienen viele Nutzer gleichzeitig. Damit das schnell bleibt, betreiben Anbieter dasselbe Programm oft hundertfach parallel an vielen Orten der Welt. Dabei entsteht ein Problem: Wenn zwei Kopien gleichzeitig denselben Zählerstand oder Spielstand ändern, kommt Unsinn heraus. Ein Durable Object ist die Antwort darauf. Es ist ein kleines Programmstück mit eigenem Namen und eigenem Speicher, von dem der Anbieter garantiert nur eine einzige aktive Kopie laufen lässt. Das Wort « durable » heißt « dauerhaft » und bezieht sich darauf, dass sich dieses Programmstück Daten über einzelne Anfragen hinaus merkt.
Warum « nur eine Kopie » ein Verkaufsargument ist
Programme im Internet sind normalerweise absichtlich vergesslich. Sie bearbeiten eine Anfrage und vergessen danach alles wieder. Alles, was gemerkt werden muss, landet in einer Datenbank, also einem separaten Speichersystem. Das funktioniert gut, wird aber kompliziert, sobald viele Nutzer gleichzeitig dasselbe verändern.
Ein typisches Beispiel ist ein gemeinsames Textdokument, an dem fünf Leute gleichzeitig schreiben. Ohne eine zentrale Stelle, die die Reihenfolge der Änderungen festlegt, überschreiben sich die Bearbeitungen. Entwickler lösen das sonst mit Sperren und Warteschlangen in der Datenbank. Das ist fehleranfällig und schwer zu testen. Ein Durable Object nimmt diese Arbeit ab, weil die Einzigartigkeit vom System selbst garantiert wird.
Der zweite Vorteil ist Geschwindigkeit. Der Speicher gehört direkt zum Programmstück und liegt am selben Ort. Es entfällt also die Wartezeit für den Weg zu einer entfernten Datenbank. Für Anwendungen, bei denen jede Millisekunde zählt, etwa Online-Spiele oder Live-Chats, ist das ein echter Unterschied.
Name, Adresse und der eigene Speicher
Jedes Durable Object hat eine eindeutige Kennung, ähnlich wie eine Hausnummer. Oft benutzt man dafür etwas Natürliches: die Nummer eines Chatraums, den Namen eines Dokuments, die Kennung eines Nutzerkontos. Wenn eine Anfrage für « Chatraum 42 » hereinkommt, leitet das System sie an genau das Objekt mit dieser Kennung weiter. Egal, von welchem Ort der Welt die Anfrage kommt.
Man kann sich das wie eine Telefonzentrale mit Durchwahlen vorstellen. Alle Anrufe zu einer bestimmten Durchwahl landen bei derselben Person. Diese Person führt genau ein Notizbuch, und niemand sonst schreibt darin. Deshalb widersprechen sich die Notizen nie. Existiert die Durchwahl noch nicht, wird das Objekt beim ersten Anruf automatisch erzeugt.
Anfragen an ein Objekt werden nacheinander abgearbeitet, nicht gleichzeitig. Dadurch braucht der Entwickler sich um gleichzeitige Zugriffe nicht zu kümmern. Wird ein Objekt eine Zeit lang nicht gebraucht, schläft es ein und kostet keine Rechenzeit. Sein Speicher bleibt dabei erhalten und ist beim nächsten Aufruf wieder da. Genau darin unterscheidet sich ein Durable Object von einer gewöhnlichen kurzlebigen Cloud-Funktion, die nach jeder Anfrage alles vergisst.
Wovon in Produkten und Meldungen die Rede ist
Der Begriff kommt fast immer im Zusammenhang mit Cloudflare vor, einem großen Anbieter von Internet-Infrastruktur. Dort gehören Durable Objects zur Plattform « Workers », auf der Entwickler eigenen Programmcode in Cloudflares Rechenzentren laufen lassen. Andere Anbieter haben inzwischen ähnliche Angebote, oft unter dem Schlagwort « stateful Serverless », also « Cloud-Programme mit Gedächtnis ».
Im Alltag begegnest du dem Ergebnis, ohne den Begriff zu sehen. Gemeinsame Notiz- und Zeichen-Apps, Live-Umfragen in Streams, Spielräume in Browserspielen oder Warteschlangen bei Ticketverkäufen werden gerne so gebaut. Auch KI-Anwendungen nutzen es: Der Gesprächsverlauf eines Chats mit einem Sprachmodell muss irgendwo liegen, und ein Objekt pro Unterhaltung ist dafür eine naheliegende Lösung.
In Wirtschaftsmeldungen taucht das Thema auf, weil solche Bausteine Anbieter austauschbar oder eben unaustauschbar machen. Wer seine App stark auf Durable Objects stützt, kann sie nicht leicht zu einem anderen Anbieter umziehen. Fachleute nennen das Anbieterbindung. Ein häufiger Irrtum ist außerdem, ein Durable Object sei eine Datenbank. Es ist eher ein einzelner zuständiger Sachbearbeiter mit kleinem Aktenschrank, kein System für Millionen Datensätze und komplexe Abfragen.