Docs
ADR 0001: Actors Use VM Mailboxes; NNG Is Distribution Transport
Status: Accepted
Context
Eta is moving from a socket-first concurrency model to a VM actor runtime model with PID identity and mailbox semantics. The migration needs one stable design lock that keeps runtime, stdlib wrappers, and docs aligned while M1-M8 ships.
Decision
Actors use VM-owned mailboxes addressed by PID values. NNG remains the transport layer for distribution and external messaging patterns, but not the in-memory mailbox abstraction for local actors.
Key implementation anchors:
eta/core/src/eta/runtime/memory/heap.heta/core/src/eta/runtime/factory.heta/session/src/eta/session/driver.h
Receive semantics for actor code are expressed through
receive-match / receive-after.
Consequences
- Actor APIs are PID-first (
std.actor) and independent of socket handles. - Legacy socket workflows remain available in
std.net. - Scheduler/reduction rollout can evolve independently of transport details.