-
-
Notifications
You must be signed in to change notification settings - Fork 0
System architecture
Elah's intended architecture separates gameplay from coordination.
Minecraft client
|
v
Velocity proxy and Sling
|
v
ElahFolia workers
^
|
elahd
This is a future runtime target. The current release does not provide Sling or ElahFolia.
| Component | Responsibility |
|---|---|
elahd |
Control-plane membership, topology, future cell ownership, and ownership epochs. |
elah |
Administrator command-line interface, including Observer. |
| ElahFolia | Thin Folia integration for Minecraft worker processes. |
| Sling | Velocity integration for routing, backend switching, handoff retries, and handoff visibility. |
| Shepherd | Future placement and workload scheduler inside elahd. |
| Stone | Future persistent world-storage service. |
| Brook | Future generation and pregeneration service. |
Folia is planned to handle vertical concurrency inside one worker process. Elah is planned to handle horizontal coordination between worker processes and machines.
Keeping those responsibilities separate avoids placing distributed coordination inside normal tick paths without evidence.
The control plane manages identities, protocol versions, worker sessions, health, topology, and future ownership decisions. It must not carry normal gameplay messages such as movement, block changes, inventory clicks, entity ticks, or chunk packets.
The data plane stays on the path between the Minecraft client, Velocity, Sling, and the current worker. This keeps ordinary gameplay away from controller latency.
The design assigns each active (world, dimension, cell) to exactly one authoritative worker at an ownership epoch. A stale worker must be rejected. Read-only neighboring state may exist later, but it must never become a second authority.
The monorepo keeps Rust, Java, JavaScript, TypeScript, Protocol Buffers, schemas, and laboratories versioned together. Protocol changes can therefore be generated and tested across languages in one release gate.
Elah 0.0.3 | Repository | Releases | Security