I’ve just published a completely revamped and massively expanded Syndicate project website:
A big part of the change is to fix the confusing terminology used in the project. From now on, I’ll try to stick to the following:
Syndicated actors, and the Syndicated Actor model: Like regular actors, but with replicated state, i.e. assertions connecting peers rather than just messages.
The notion of a dataspace: A particular kind of behaviour of a syndicated actor: tracks assertions made to it, and reacts to assertions of interest by responding with previously-learned facts.
Structuring of a syndicated actor via conversational concurrency and facets: Programming actors, syndicated or not, gets to be a bit of a mess if you’re restricted to using a monolithic behaviour function. Facets let you split up an actor’s behaviour into reusable composable pieces. Conversational concurrency guides you in how to carve it up.
Language support for syndicated actors and conversational concurrency: the Syndicate DSL.