Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> I'm going to be honest: naming this product was hard, because it's not quite like any other cloud technology that is widely-used today.

Perhaps I'm missing something important, but isn't this quite similar to Orleans grains and other distributed actors?



"Actors" was actually one of the names we used internally for a long time (it's still all over the code), but eventually decided against because we found that people familiar with the Actor Model actually expected something a bit different, so it confused them.

But yes, the basic idea is not entirely new. For me, Durable Objects derive from my previous work on Sandstorm.io, which in turn really derives from past work in Capability-based Security (many implementations of which are Actor-oriented). But while the idea is not entirely new, the approach is not very common in web infrastructure today.

(I'm not familiar with Orleans.)


We (Orleans team) also stopped referring to them as actors some time ago for the same reason. The Orleans papers call them Virtual Actors or Grains. Usually, I describe grains as Distributed Objects.


Hah, "Grains" is also what we called them in Sandstorm.io.


> ...we found that people familiar with the Actor Model actually expected something a bit different

I haven't done any programming with Actors per se but after skimming over its Wikipedia entry and other blog posts, Durable Objects does sound a lot like Actors to me.

Genuinely curious: What were some glaring differences that you were made aware of that led to not naming it Actors?

Thanks.


So, this would be a better question for someone who has actually worked with other actor-model frameworks. But, one sense that I get is that in Erlang, there is a design philosophy where most actors are intentionally stateless so that if anything goes wrong they can die and be replaced easily.

So ironically it seems like many people expected statelessness to be a property, which is the opposite of what we were going for!

Disclaimer: I haven't worked with Erlang myself and I'm probably missing some nuance here. My background is in object-capability systems, which also commonly claim to be actor systems, and match what we're doing very closely.


Actors can be stateful and stateless, so this is a subset, and made serverless. Pretty cool! I get it, naming is hard and “serverless stateful actors” might have been too long of a name. Excited to check out this product.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: