Actor = state + behavior + mailbox

State is private. Behavior processes messages one at a time. Mailbox is a queue.

Advertisement

Actor = state + behavior + mailbox

State is private. Behavior processes messages one at a time. Mailbox is a queue.

Advertisement

No shared state

Actors don't read each other's fields. Any communication = a message. Eliminates race conditions.

Single-threaded processing

An actor processes one message at a time. Its own code never has thread-safety concerns.

Dispatcher schedules

Small pool of threads dispatches actor executions. Millions of actors + few threads is fine.

Location transparency

Actor address doesn't reveal local vs remote. Same code sends messages across the network. Basis for Akka, Erlang, Elixir.