/orbit

Orbit - Virtual actor framework for building distributed systems

Primary LanguageJavaOtherNOASSERTION

Orbit Logo

Release Maven Central Javadocs Build Status Gitter Twitter Follow

Orbit is a framework to write distributed systems using virtual actors on the JVM. It allows developers to write highly distributed and scalable applications while greatly simplifying clustering, discovery, networking, state management, actor lifetime and more.

Duke's Choice Award Logo
Orbit received the 2016 Duke's Choice Award for Open Source, read here for more information.

Full Documentation

See the Wiki for full documentation, examples and other information.

Developer & License

This project was developed by Electronic Arts and is licensed under the BSD 3-Clause License.

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")