Skip to content
Back to skills

Agha Actor Model

ASecurity

Designs message-driven actor interactions with explicit delivery, recovery, and capability assumptions. NOT a transport reliability or authorization guarantee.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 2, 2026
toolsgo

Works with

  • cli

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 2, 2026

npx -y skills add curiositech/port-daddy --skill agha-actor-model --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Agha Actor Model?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Agha Actor Model
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/curiositech-agha-actor-model-65752e51/badge)](https://www.skillsdirectory.com/skills/curiositech-agha-actor-model-65752e51)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
license: Apache-2.0
name: agha-actor-model
description: Designs message-driven actor interactions with explicit delivery, recovery, and capability assumptions. NOT a transport reliability or authorization guarantee.
allowed-tools: [Read, Write, Edit, Glob, Grep]
metadata:
  category: Research & Academic
  tags: [actor-model, concurrency, message-passing]
---
# Agha actor model

Use the actor model to assign encapsulated behavior, send messages, and create actors in an open concurrent system. These semantics do not guarantee delivery, FIFO ordering, fairness, persistence, authorization, or a supervisor’s restart policy; name the runtime and application assumptions that supply any such property.

## 1. Define the local behavior and message contract

For each message, state correlation ID, sender capability, expected reply, replacement behavior, and durable recovery state. A recipient may send messages, create actors, and designate behavior for its next message; the model’s open-system account and Agha’s 1986 framing do not supply an end-to-end effect receipt.

```mermaid
flowchart LR
  M[Message with correlation ID] --> H[Actor handles one delivered message]
  H --> S[Send to known capability]
  H --> C[Create actor]
  H --> B[Designate next behavior]
  S --> R[Runtime-specific delivery assumptions]
```

## 2. Treat timeout as unknown

A missing reply can mean delay, loss, recipient failure, partition, or a completed effect whose reply was lost. Before retrying a non-idempotent request, query authoritative state. Retry only with documented idempotency/deduplication and authority; otherwise retain unknown and escalate or compensate under an explicit policy.

```mermaid
flowchart TD
  T[Reply deadline passes] --> U{Authoritative state known?}
  U -->|completed| D[Deduplicate and record receipt]
  U -->|authoritative noncommit plus late-commit fence, or validated same-operation dedup, with authority and budget| R[Retry with same correlation ID]
  U -->|unknown| E[Preserve unknown and escalate]
  U -->|compensation authorized| C[Run explicit compensation]
```

## 3. Worked trace

A client sends `extract(id=42)` to a worker with reply address `customer-42`. The worker may create a parser actor and send its result directly to that customer; the client remains available for unrelated messages. If the deadline passes, the customer asks the durable job record for `42`. A returned result is accepted once by correlation ID. This is a constructed protocol overlay, not an actor-model theorem.

## 4. Review

Check encapsulated state, named capabilities, behavior replacement, message correlation, runtime delivery assumptions, and an unknown-effect branch. Shared-memory/lock designs remain valid when their substrate is required.

## Sources and limits

[Agha 1986](https://mitpress.mit.edu/9780262511414/actors/) establishes the primary model framing; [Agha et al. 1992](https://osl.cs.illinois.edu/publications/conf/concur/AghaMST92.html) gives operational semantics for open actor systems and equivalence under stated fairness assumptions. [Erlang/OTP supervision](https://www.erlang.org/docs/17/design_principles/sup_princ.html) is an implementation policy, not an actor axiom.

## 5. Delegation, long work, and observational review

Use the customer pattern for `A→B→C`: A creates continuation `kBC`, sends A’s result request to B with `kBC`; `kBC` sends B’s result to C with `kC`; `kC` sends C’s result to the final customer. A becomes ready for its next message after creating the continuation. For long work, an insensitive actor delegates incoming work to a buffer/customer rather than blocking its own delivery path. Dynamic creation and addresses carried as message data permit capability routing; they do not authorize a recipient.

Agha et al. 1992 §2 models fair asynchronous message delivery: a message cannot remain queued forever when its receiver is external or ready infinitely often. That formal assumption differs from deployment proof of a particular network’s delivery. The paper also models `become` through anonymous continuation/clone behavior and distinguishes uninitialized, ready, and busy actor states. §3 distinguishes may/must observation under contexts; test composed behavior and event traces, not final output alone. The Brock-Ackerman lesson is a diagnostic: equal outputs can conceal different composition behavior.

Files in this skill

  • SKILL.md4.3 KB
  • references/source-bounded-actor-recovery.md845 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…