zlacker

[return to "Actors: A Model of Concurrent Computation [pdf] (1985)"]
1. kibwen+4d[view] [source] 2026-02-02 03:12:41
>>kioku+(OP)
Please change the title to the original, "Actors: A Model Of Concurrent Computation In Distributed Systems".

I'm not normally a stickler for HN's rule about title preservation, but in this case the "in distributed systems" part is crucial, because IMO the urge to use both the actor model (and its relative, CSP) in non-distributed systems solely in order to achieve concurrency has been a massive boondoggle and a huge dead end. Which is to say, if you're within a single process, what you want is structured concurrency ( https://vorpus.org/blog/notes-on-structured-concurrency-or-g... ), not the unstructured concurrency that is inherent to a distributed system.

◧◩
2. sebast+5n[view] [source] 2026-02-02 05:04:50
>>kibwen+4d
Hmm, you think?

I’m currently engineering a system that uses an actor framework to describe graphs of concurrent processing. We’re going to a lot of trouble to set up a system that can inflate a description into a running pipeline, along with nesting subgraphs inside a given node.

It’s all in-process though, so my ears are perking up at your comment. Would you relax your statement for cases where flexibility is important? E.g. we don’t want to write one particular arrangement of concurrent operations, but rather want to create a meta system that lets us string together arbitrary ones. Would you agree that the actor abstraction becomes useful again for such cases?

◧◩◪
3. frumio+MV[view] [source] 2026-02-02 11:28:49
>>sebast+5n
Data flow graphs could arguably be called structured concurrency (granted, of nodes that resemble actors).

FWIW, this has become a perfectly cromulent pattern over the decades.

It allows highly concurrent computation limited only by the size and shape of the graph while allowing all the payloads to be implemented in simple single-threaded code.

The flow graph pattern can also be extended to become a distributed system by having certain nodes have side-effects to transfer data to other systems running in other contexts. This extension does not need any particularly advanced design changes and most importantly, they are limited to just the "entrance" and "exit" nodes that communicate between contexts.

I am curious to learn more about your system. In particular, what language or mechanism you use for the description of the graph.

[go to top]