1. 16

  2. 3

    How is this different from other actors solutions?

    1. 10

      For a fair comparison, you should be considering actor systems that are distributed because the architectural decisions made here are specific to distribution. That means we would be comparing only to Distributed Erlang and Akka.

      Briefly highlighting some of the differences:

      • Actor models don’t dictate storage – there’s no log, there’s no check-pointing of state built into the model.
      • Code is not guaranteed to be deterministic, messages can’t be safely replayed to actors or on the network.
      • Message ordering is not guaranteed.
      • Message delivery is best-effort.
      • Actors are not respawned under failure (with, some exceptions with OTP, etc.)
      • There’s no model for active-standby – crash recovery is usually handled with restarts.