Protocols/Actors

05 Nov 2025 - 12 Dec 2025
Open in Logseq
    • Notes for presentation on Actors to Formal Protocol Theory group
    • Slides

      • Actors

        • A model of concurrent computation as intercommunicating objects
        • Originated by Carl Hewitt, initial work in 1972 or so.
        • A model for real-world distributed systems
        • Not a single formalism and maybe not that interesting except for intellectual history
          • It's a bit hard to appreciate today, when every toaster is connected to the internet, how visionary and forward-thinking Hewitt's thinking about distributed computing was in its day. Basically he foresaw this world and tried to develop intellectual tools for building and controlling it.
        • But close to OOP and ABM, which are relevant
      • Actors are dead simple

        • A model of concurrency in computation and other systems
        • Actors pass messages – that's it
        • Pure computation, although some models support external actions
        • A rare video of Hewitt explaining Actors
      • An organizing metaphor

        • ... an approach to modelling intelligence in terms of a society of communicating knowledge-based problem-solving experts. In turn each of the experts can be viewed as a society that can be further decomposed in the same way until the primitive actors fo the system are reached. We are investigating the nature of the communication mechanisms needed for effective problem-solving by a society of experts and the conventions of discourse that make this possible.
        • An anthropomorphic model of computation
        • A protocolized mode of computation
      • The formalism

        • Actor A sends a message to actor B
        • On reception B can do three things:
          • Change internal state (aka replace their behavior)
          • Send out other messages (to A or other actors)
          • Create new actors
        • image.png
      • Sounds like Object-oriented programming

        • that's not a coincidence...
        • The Early History Of Smalltalk, Alan Kay
          • This was the big hit, and I've not been the same since. ...Bob Barton, the main designer of the B5000 and a professor at Utah had said in one of his talks a few days earlier: "The basic principle of recursive design is to make the parts have the same power as the whole." For the first time I thought of the whole as the entire computer and wondered why anyone would want to divide it up into weaker things called data structures and procedures. Why not divide it up into little computers, as time sharing was starting to? But not in dozens. Why not thousands of them, each simulating a useful structure?... It was the promise of an entirely new way to structure computations that took my fancy.
          • Again, the whole point of OOP is not to have to worry about what is inside an object. Objects made on different machines and with different languages should be able to talk to each other—and will have to in the future. Late-binding here involves trapping incompatibilities into recompatibility methods
          • In November [1972?], I presented these ideas and a demonstration of the interpretation scheme to the MIT AI lab. This eventually led to Carl Hewitt's more formal "Actor" approach [Hewitt 73]. In the first Actor paper the resemblance to Smalltalk is at its closest. The paths later diverged, partly because we were much more interested in making things than theorizing, and partly because we had something no one else had: Chuck Thacker's Interim Dynabook (later known as the "ALTO").
      • Complications

        • Asynchronous communication
        • Buffering
        • Backpressure
        • Nondeterminism
        • Fairness
        • Guarantee of delivery
        • Granularity
      • Erlang: industrial-strength actors

        • **Erlang/OTP in telecoms** - The AXD301 ATM switch handled 99.9999999% uptime managing 2+ million concurrent connections. The interesting part isn't just "it works" but that the actor model's supervision hierarchies directly map to failure isolation requirements in telecommunications. .
        • WhatsApp - Built on Erlang, scaled to 900M users with ~50 engineers. Each conversation is essentially an actor coordinating message delivery across distributed nodes. The architecture choices directly reflect actor semantics (asynchronous messages, location transparency).
        • Supervision trees

          • A basic concept in Erlang/OTP is the supervision tree. This is a process structuring model based on the idea of workers and supervisors:
          • Workers are processes that perform computations and other actual work.
          • Supervisors are processes that monitor workers. A supervisor can restart a worker if something goes wrong.
          • The supervision tree is a hierarchical arrangement of code into supervisors and workers, which makes it possible to design and program fault-tolerant software.
      • Actors and real-world systems

        • Agoric systems and capabilities

          • Agoric Open Systems (Drexler and Miller, 1986) Papers Market-oriented computing
          • Institutions as Abstraction Boundaries, Tulloh and Miller
            • Whether we post a letter, wait for a train, or draw a cheque, our action is in each case orientated towards a complex network of human action of which we know enough to make it serve our ends, though we may know next to nothing about the internal working order of these institutions. We know of course that such an internal working-order exists, but in our everyday life take no interest whatever in its details. We know very well that the Post Office works according to a general plan, but such knowledge as we have about it is usually quite irrelevant to the achievement of our purpose in posting a letter. Only a few aspects of this general plan, perhaps the times of collection and delivery of mail, need be of concern to us.
              • – Lachmann 1971
            • Lavoie argues that ‘entrepreneurship should be conceptualized as a social process of mutual orientation.’ He argues that ‘Our ability to coordinate with one another may depend on our capabilities for mutual orientation, to see not the things themselves, but to see how one another are seeing things.’ The focus on mutual orientation suggests that we shift our attention to how market participants articulate and share meanings, and how they negotiate shared categories that orient their actions....As we have seen, abstraction boundaries are the key to flexibly combining complementary activities. The process of ‘specifying’ and ‘fitting’ requires both the discovery of an abstraction and the creation of a boundary that allows it to connect to complementary activities. Entrepreneurs must look beyond existing categories to specify new solutions, yet at the same time fit the new solution into a pattern of complementary activities.
            • The move from procedural programming to object-oriented programming can be seen as a move from concrete plans to abstract plans. Objects do not coordinate their actions with the specific plans of other objects; they coordinate their actions to the abstract aspects of those plans. An object’s interface abstracts from a specific plan to a kind of plan. Object-oriented programming, or more generally the move to encapsulation, message passing, and polymorphism, is essentially trying to move from plan coordination to pattern coordination...
            • The Coherence and Flexibility of the Institutional Order: The Role of Abstraction and Modularity (followup 2017 paper)
              • We recast Lachmann’s explanation of the institutional order in terms of the concepts of abstraction and modularity borrowed from computer programming. Economists, largely under the influence of Herbert Simon, have examined the role of modularity, but they have ignored the twin concept of abstraction. Simon emphasizes the role of modularity in decomposing complex systems, but programmers also emphasize the role of abstraction in composing them. The programmers’ challenge of composition can be viewed as analogous to economists’ problem of plan coordination. We argue that not only do the concepts of abstraction and modularity provides a better foundation for Lachmann’s theory of the institutional order, but they provide a natural link to Hayek’s work on abstract orders.
        • Bruno Latour's ANT

          • Latour's Actor-Network Theory, shares not only the name but some of the ideas, from a very different perspective
          • Structural Similarities

          • Relational ontology - Both reject essentialist thinking. In ANT, actors are defined by their associations and what they do, not by intrinsic properties. In the Actor Model, actors are defined purely by their behavior (message-handling), not by internal structure. Both are fundamentally about relations over essences.
          • Flat ontology - ANT famously rejects micro/macro distinctions - everything is networks all the way down. The Actor Model similarly has no privileged hierarchical level; actors compose fractally. A "system" is just another actor from the outside.
          • Black-boxing - In ANT, stabilized networks of actors can be treated as single actors (a "black box"). This maps directly to actor encapsulation and composition - a complex subsystem of actors presents as a single actor to the rest of the system.
          • Heterogeneous actors - ANT treats humans and non-humans symmetrically as actors. While the computational Actor Model doesn't explicitly theorize materiality, Hewitt's broader vision of actors as a general model of computation (including physical systems) resonates with ANT's symmetry principle.
        • Differences

          • Formalization - ANT is explicitly anti-formalist - Latour resists reducing social phenomena to formal models. The Actor Model is a formal computational framework. This tension is productive: can you formalize aspects of socio-technical systems without losing what ANT teaches us?
          • Latour was deeply skeptical of attempts to explain complex sociotechnical phenomena through formal models, laws, or abstract principles. His fundamental objection was that such approaches purify reality - they separate out the technical from the social, the formal from the practical, the representation from the thing represented. For Latour, this separation is a modernist fiction that obscures how things actually work.
          • His alternative was radical empiricism: follow the actors, describe the practices, trace the associations. Don't start with a theory of what should coordinate action; watch what actually does coordinate action - which often turns out to be mundane material things, improvised workarounds, and local negotiations rather than clean formal specifications.
      • Agent-based modelling

        • Not formal actor model, but in the spirt (objects and messages)
        • NetLogo
        • image.png
        • to go ask turtles [ if chemical > sniff-threshold ;; ignore pheromone unless there's enough here [ turn-toward-chemical ] rt random-float wiggle-angle - random-float wiggle-angle + wiggle-bias fd 1 set chemical chemical + 2 ] ;; drop chemical onto patch diffuse chemical 1 ;; diffuse chemical to neighboring patches ask patches [ set chemical chemical * 0.9 ;; evaporate chemical set pcolor scale-color green chemical 0.1 3 ] ;; update display of chemical concentration tick end
        • image.png
      • Conclusion

        • Actor model is historically interesting but not that useful (unless you are a concurrent computation theorist)
        • Adjacent ideas (object-oriented programming, agent-based modelling) are very relevant and should be the basis for protocol modelling practice.