The Orbit project is split into several modules for client and server.



A JVM library for applications interfacing with an Orbit cluster. It handles maintaining a connection to the mesh, leasing addressables, and routing messages. It will be the main entrypoint for most developers.

To include in your Gradle project, import the client library.

implementation("cloud.orbit:orbit-client:{{< release >}}")


Orbit can be run as a packaged service without having to delve into the server modules. However, if a more customized version of Orbit is needed, these modules can be used to build the server suitable to the task.


This is the main implementation of the Orbit Server cluster node. It handles the client connections, mesh connections, authorization, node and addressable leases, and message routing.


Default hosting application for orbit-server. Decodes settings from a file and initiates the server runtime.


Contains the protobuf definitions for communicating with the service and helper methods for translation to internal types.


Implementations of the Node Directory and Addressable Directory against an etcd store. By default orbit-server will use in-memory directories, but those won't support clustering multiple Orbit Server nodes nor will values persist between restarts.


Implementation of a Prometheus endpoint for exposing metrics gathered by micrometer.

orbit-shared & orbit-util

Shared and utility classes mostly to support internal operations.

Last updated