Modules
The Orbit project is split into several modules for client and server.
Client
orbit-client
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:2.0.0-alpha.108")
Server
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.
orbit-server
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.
orbit-application
Default hosting application for orbit-server. Decodes settings from a file and initiates the server runtime.
orbit-proto
Contains the protobuf definitions for communicating with the service and helper methods for translation to internal types.
orbit-server-etcd
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.
orbit-server-prometheus
Implementation of a Prometheus endpoint for exposing metrics gathered by micrometer.
orbit-shared & orbit-util
Shared and utility classes mostly to support internal operations.