Using actors
Actors are another way of modeling a system as a large number of concurrently running processes. Each process in the actor model is termed as an actor, and this model is based on the philosophy that every piece of logic in a system can be represented as an actor. The theory behind actors was first published by Carl Hewitt in the early '70s. Before we explore actors, we must note that the core Clojure language and libraries do not provide an implementation of the actor model. In fact, it is a widely accepted notion in the Clojure community that processes and channels are a much better methodology to model concurrently running processes compared to actors. That aside, actors can be used to provide more resilient error handling and recovery, and it is possible to use actors in Clojure through the Pulsar library (https://github.com/puniverse/pulsar).
Note
To find out more about why processes and channels are preferred over actors in Clojure, take a look at Clojure core.async...