-
Notifications
You must be signed in to change notification settings - Fork 178
Description
It seems that in #102 some explanation regarding the distinction between virtual actors and the actor model (as implemented by Akka) was added to the documentation at http://orbit.bioware.com/orbit-actor-overview.html ; however, that page is no longer available. The new documentation website at https://www.orbit.cloud/orbit/ doesn't have much in the way of explanation about virtual actors specifically, instead linking to Microsoft Orleans.
Orbit is a framework to write distributed systems using virtual actors on the JVM. A virtual actor is an object that interacts with the world using asynchronous messages.
This describes non-virtual actors as well.
At any time an actor may be active or inactive. Usually the state of an inactive actor will reside in the database. When a message is sent to an inactive actor it will be activated somewhere in the pool of backend servers. During the activation process the actor’s state is read from the database.
Based on this, it seems that the key difference is persistence, although again the text does not make explicit the distinction between actor and virtual actor.
It is heavily inspired by the Microsoft Orleans project.
Of course, one could go read the Orleans documentation to learn more about virtual actors - but since that is a .NET project and Orbit is merely "inspired" by it, one wouldn't be able to tell which parts are applicable here and which perhaps are not.
On the whole, there isn't much information on the web regarding the differences between Akka and Orbit other than a couple old discussions on github (linked below). In the context of the JVM world, and this being the lesser known of the two projects, it would perhaps help to increase awareness of the Orbit project if the documentation included a more robust introduction, written with the experienced JVM developer in mind (who is likely already familiar with Akka).