The animation on the Syndicated Actors home page [0] does a pretty good job of showing the difference, I think. Goblins is much more similar to the classic actor model shown at the beginning of the animation. The "syndicated" part, as far as I understand, relates to things like eventually consistent state sync being built-in as primitives. In Goblins, we provide the actor model (actually the vat model [1] like the E language) which can be used to build eventually consistent constructs on top. Recently we prototyped this using multi-user chat as a familiar example. [2]
My 5 minute read is that the divergences are primarily in the communication model and in transactions:
- the SAM coordinates through the dataspace, whereas Goblins is focused on ("point-to-point") message passing
- SAM (as presented) doesn't contain a transactional semantics -- e.g. turns are atomic, and there's no rollback mechanism (I haven't been up to speed on recent work, I do wonder if this could be designed into SAM)
Comments
How does this model compare to the syndicated actor model of Tony Garnock-Jones?
(which, as far as I can tell, also supports capabilities and caveats for security)
Neat work!
The animation on the Syndicated Actors home page [0] does a pretty good job of showing the difference, I think. Goblins is much more similar to the classic actor model shown at the beginning of the animation. The "syndicated" part, as far as I understand, relates to things like eventually consistent state sync being built-in as primitives. In Goblins, we provide the actor model (actually the vat model [1] like the E language) which can be used to build eventually consistent constructs on top. Recently we prototyped this using multi-user chat as a familiar example. [2]
[0] https://syndicate-lang.org/
[1] https://files.spritely.institute/docs/guile-goblins/0.17.0/T...
[2] https://spritely.institute/news/composing-capability-securit...
Thank you, very helpful!
My 5 minute read is that the divergences are primarily in the communication model and in transactions:
- the SAM coordinates through the dataspace, whereas Goblins is focused on ("point-to-point") message passing
- SAM (as presented) doesn't contain a transactional semantics -- e.g. turns are atomic, and there's no rollback mechanism (I haven't been up to speed on recent work, I do wonder if this could be designed into SAM)