Intermediate Topic 23 of 51 Concurrency & Parallelism
Actor Model
Isolated entities communicating by messages.
How it works
In the actor model, the basic unit of computation is an actor: an independent entity with private state that communicates only by sending asynchronous messages to other actors' mailboxes. In response to a message, an actor can update its state, create new actors and send messages. Because state is never shared and each actor processes one message at a time, there are no data races within actors. Supervision hierarchies handle failures with a let-it-crash philosophy. Frameworks include Erlang and Elixir's OTP, Akka and Orleans.
Where it is used
Telecom switches, chat and messaging back ends, IoT platforms, game servers and fault-tolerant distributed systems use actors, and location transparency lets actors span machines.
Common pitfall
Message ordering is only guaranteed between pairs, and unbounded mailboxes can fill under load. Request-response needs correlation and timeouts, and deadlocks can still occur through waiting cycles. Debugging asynchronous flows is hard. Large messages are expensive to copy. Design actors with clear responsibilities, bound mailboxes and add monitoring and supervision strategies.
Where it fits in the course
Actor Model is topic 23 of 51 in Concurrency & Parallelism, rated Intermediate. It follows Green Threads. The next topic is Communicating Sequential Processes.
Practice and explore
- Open the interactive lesson, with a mini quiz.
- Take the Concurrency & Parallelism quiz.
How to study this topic
- Read the explanation above and restate the definition in your own words.
- Open the interactive lesson and answer its mini quiz.
- Read the common pitfall, then write a short example that avoids it.
- Check your understanding in the Concurrency & Parallelism quiz, and revisit the topic if you miss a question.
Frequently asked questions
What is Actor Model?
Where do people use Actor Model?
What is the most common mistake with Actor Model?
What should I learn before this topic?
How can I practice it?
Is Actor Model hard to learn?
How long does it take to learn Actor Model?
Which topics are related to Actor Model?
What should I study after Actor Model?
Related topics
- Green Threads (Concurrency & Parallelism)
- Communicating Sequential Processes (Concurrency & Parallelism)
- Futures and Promises Model (Concurrency & Parallelism)
- Go Goroutines and Channels (Concurrency & Parallelism)
- Client-Server Model (Distributed Systems & Cloud)
- Relational Model (Databases)
- Waterfall Model (Software Engineering)