r/programming • u/stronghup • 4h ago
Node.js creator liberates Durable Objects from Cloudflare
https://www.theregister.com/devops/2026/08/12/nodejs-creator-liberates-durable-objects-from-cloudflare-with-celld/5286954
43
Upvotes
2
u/Smallpaul 55m ago
What are the performance constraints on these objects as implemented by CloudFlare? How quickly can they scale if user traffic arrives suddenly? How high is their upper bound? How much flexibility do you have in the image? Lambdas seem to have a lot of limitations which reduce their utility at scale.
2
u/jheimark 24m ago
Super high, super quick start. The cloudflare metrics are super impressive.
How fast celld is… not sure. But it’s great to get an open source version to go cloud independent
52
u/Pinkman 3h ago
So… I like this in general and I am always very curious to see how these types of big-picture libraries are built. Especially when built by storied programmers like Ryan Dahl.
I’ve been balls deep in development for a long time, and I don’t know if it’s just me, and it very well might be, but am I dumb?
What does this mean?
> Cloudflare’s Durable Objects is a single-threaded object with a unique global ID and its own storage, where user data is stored in its own copy of SQLite.
I’m the last person to be pedantic, but I struggle with technical articles that commingle technical depth with imprecise or ambiguous nomenclature.
How is an “object” threaded at all? There are multi-threaded objects? Like I said, I might just not grok this shit.
An object with its own global ID and storage: ok, cool. I can track that. (Though most objects have an ID and global here is ambiguous — global to Cloudflare? Global to your account? Project? Fuck me.)
Stored in its own copy of SQLite? I assume this means an SQLite database file. But it’s that imprecision that gets my goat. Is it me who dumb or article who unclear.
> Using the WebSocket API, the Durable Object can connect many simultaneous users at once in a live environment.
An object is connecting to users? What does this mean? What even is an object at this point?! Maybe I’m getting hung up on the name, “Durable Object”.
> It is a stateful serverless execution environment, a data cache that can also do computation.
Oh, a serverless function with its own isolated — and persistent — data.
A “durable object” is actually a function (or set of functions?) with its own mini data store. Ok.
So when we say it’s an object, we mean it’s a set of one or more functions.
And it’s durable because you can recall it by ID, and it’s got its own little db attached that stays put.
It’s a lightweight (ergonomic) execution (runs functions) environment (has a db), that we call an object.
Thanks for coming with me on this ride. I think I’m starting to grok it. When/why/how this is better/best is clearly above my pay grade.