[go: up one dir, main page]

Menu

Tree [287246] v0.8.1 /
 History

HTTPS access


File Date Author Commit
 .idea 2015-04-10 Daniel Sperry Daniel Sperry [c0908b] Setting intellij copyright defaults.
 actors 2016-04-21 Joe Hegarty Joe Hegarty [287246] Version 0.8.1
 commons 2016-04-21 Joe Hegarty Joe Hegarty [287246] Version 0.8.1
 .gitignore 2015-05-28 Jeff Theriault Jeff Theriault [40d680] Adding .DS_Store to gitignore
 .travis.yml 2016-02-04 Joe Hegarty Joe Hegarty [134f36] Major project refactor
 CONTRIBUTING.md 2015-09-02 Joe Hegarty Joe Hegarty [f9396a] Update CONTRIBUTING.md
 LICENSE 2016-01-04 Joe Hegarty Joe Hegarty [9e4f0d] Update LICENSE
 README.md 2016-03-31 Joe Hegarty Joe Hegarty [93131f] Update README.md
 eclipse-code-style.epf 2016-03-30 Joe Hegarty Joe Hegarty [c3c494] Refactor paths
 pom.xml 2016-04-21 Joe Hegarty Joe Hegarty [287246] Version 0.8.1

Read Me

Orbit Framework

Release
Maven Central
Javadocs
Build Status
Gitter

Orbit Actors is a JVM based framework to write distributed systems using virtual actors.
A virtual actor is an object that interacts with the world using asynchronous messages.

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.

Actors are deactivated based on timeout and on server resource usage.

It is heavily inspired by the Microsoft Orleans project. For the latest news, follow us on Twitter.

Developer & License

This project was developed by BioWare, a division of Electronic Arts and is licensed under the BSD 3-Clause License.

Documentation

Documentation is located here.

Simple Example

Java

public interface Hello extends Actor
{
    Task<String> sayHello(String greeting);
}

public class HelloActor extends AbstractActor implements Hello
{
    public Task<String> sayHello(String greeting)
    {
        getLogger().info("Here: " + greeting);
        return Task.fromValue("Hello There");
    }
}

Actor.getReference(Hello.class, "0").sayHello("Meep Meep");

Scala

trait Hello extends Actor {
  def sayHello(greeting: String): Task[String]
}

class HelloActor extends AbstractActor[AnyRef] with Hello {
  def sayHello(greeting: String): Task[String] = {
    getLogger.info("Here: " + greeting)
    Task.fromValue("Hello There")
  }
}

Actor.getReference(classOf[Hello], "0").sayHello("Meep Meep")