This documentation is available as a single page for printing.
As such, it brings Smalltalk into the Process-based family of Actor-style languages1.
Processes and Behaviors
Messages, Proxies, RPC, Promises, Timeouts and error handling
Actors send each other messages via Proxies. Messages may be synchronous (RPC) or asynchronous (one-way). Request objects represent both cases. Synchronous calls can be made to block, or to return a Promise of a future reply. Exception handling and timeouts and timers are fully integrated.
Links and Supervision
Borrowing from Erlang/OTP, actors may be linked to each other. Failures (uncaught exceptions or other crashes) propagate along these links. This gives a robust approach to error handling in a concurrent setting.
Links (and the related monitors) are the foundation for Supervisors, another Erlang/OTP idea. A Supervisor manages the lifecycle of a collection of actors, starting and stopping them and restarting them according to a configurable policy when they fail.
Socket and GUI support
Tracing and debugging
A tracing facility is built in to the message-passing mechanism. An “event tracer” receives fine-grained notifications of important steps in the routing, queueing and delivery of requests, replies and exception messages. It also receives notifications of actor lifecycle events.
The following paper is an excellent survey of the different families of the Actor model:
“43 Years of Actors: a Taxonomy of Actor Models and Their Key Properties”, Joeri De Koster, Tom Van Cutsem, and Wolfgang De Meuter, Proc. AGERE Workshop, 2016. ACM metadata. Tech Report version (PDF).