Live data from Hacker News

Celld: Self-hosted, distributed Durable Objects

github.com

51–56 of 56 posts

Re: Celld: Self-hosted, distributed Durable Objects

#51
Seeing something like this reminds me of Kleppmann's blog post: https://martin.kleppmann.com/2016/02/08/how-to-do-distribute....

celld's README states "Object-storage compare-and-swap ensures that exactly one node owns a cell at a time," but I'm skeptical this actually holds at the point where data is written to storage - I had an AI skim through the code with me, and the actual segment writes looked like plain, unconditional PUTs with no epoch check.

In many cases, I think using Cloudflare's Durable Objects is probably the right call instead.

Re: Celld: Self-hosted, distributed Durable Objects

#52
post #23

Wonder if this will become common practice from now on ? > Pull requests are disabled. Coding agents make it too easy to send a large, > low-context change that costs maintainers more time than it saves. > Thoughtful contributions are welcome; please understand the code, > keep the patch focused, and respect the review time you are asking for. > > Send a git format-patch attachment to ...

I wonder if the code was written by AI?

The website surely was, so...

Re: Celld: Self-hosted, distributed Durable Objects

#53
post #11

Finally! So happy to see support for running durable objects outside of one provider. Upvoted. The "durable object" concept has been repeatably demonstrated to be a valuable abstraction. "Each object is its own SQLite database, addressed by name and replicated to an S3-compatible bucket you own" -- this concept can take you a long way, both in its power and simplicity.

Check out https://rivet.dev/actors/

I believe Restate has something which can work similarly: https://docs.restate.dev/foundations/services

There was also Jamsocket and Plane, though it looks like they've shut down after acquisition: https://github.com/jamsocket/plane

This seems to be the first one which is providing drop-in compatibility for Cloudflare's JS-side APIs, including JSRPC etc.

Re: Celld: Self-hosted, distributed Durable Objects

#54
post #39

Hey, is this something that compares to Temporal or Restate or Azure Durable Functions? If so, what are the differences and when would I use Cells instead of the aforementioned?

There's some overlap and some similar use cases. I've seen a few people being confused between Durable Objects and Durable Execution.

Short writeup: https://crabmusket.net/2024/durable-execution-versus-session...

Summary:

I think the way to decide is, do you want to program with "objects" or "processes"?

I'd use Durable Objects (or what I called Session Backends in my article, after Jamsocket) if I wanted to model an "entity" that lasts indefinitely (e.g. a Figma doc, a user, a concert/event). I'd use a temporal/restate function for something that has a linear sequence of events and eventually comes to an end.

This isn't a hard rule. You can get the same outcome out of both technologies. (For example, Cloudflare built Workflows on top of Durable Objects; Rivet did the reverse.) You can use either one to implement the other, but you're going to be going out of your way based on what APIs are provided.

Re: Celld: Self-hosted, distributed Durable Objects

#55
post #40
post #27

Earlier quoted context omitted.

bummer this expects NFS; this is all a brand new implementation vs what Cloudflare runs internally in production for DOs? I can’t imagine all your workerds share a single global NFS… What would a more realistic workerd with DO support look like? ah well, we have celld!

ZeroFS might help here to put the actual storage on an S3 compatible object store? https://github.com/Barre/zerofs

The ZeroFS readme says

     Dual-licensed under the GNU AGPL v3 (fully featured, for open source use)
     and a commercial license.
but the commercial license link https://www.zerofs.net/licensing is a 404 page

Re: Celld: Self-hosted, distributed Durable Objects

#56
post #40
post #27

Earlier quoted context omitted.

bummer this expects NFS; this is all a brand new implementation vs what Cloudflare runs internally in production for DOs? I can’t imagine all your workerds share a single global NFS… What would a more realistic workerd with DO support look like? ah well, we have celld!

ZeroFS might help here to put the actual storage on an S3 compatible object store? https://github.com/Barre/zerofs

my interest in s3 is for how easy it is - just need HTTP. mounting a filesystem and worrying about filesystem level locks is more complicated.
Post reply on HN