-
-
Notifications
You must be signed in to change notification settings - Fork 0
Why Elah exists
Large Minecraft communities often want more players, more activity, and larger worlds. A single powerful machine can go far, especially with modern server software, but it is still one machine with finite CPU, memory, storage, and network capacity.
Elah explores a different question:
Can one logical world use several machines without making players install a special client or turning world safety into a gamble?
The goal is not to spread work across machines merely because it looks impressive. The goal is to make growth more practical while preserving the parts players care about:
- one familiar Java client connection;
- one connected world;
- consistent inventories and positions;
- no duplicated authoritative areas;
- understandable recovery when something fails.
Distributed systems can create failures that one server never has. A delayed network message can look like a dead machine. A restarted worker can hold old information. Two machines can accidentally believe they both own the same area.
Elah's central rule is simple: uncertain ownership must not create a second writer. Temporary unavailability is better than silent corruption, duplicated items, or lost world state.
This is why the roadmap begins with small laboratories, read-only inspection, one worker, and fixed boundaries. Dynamic scaling comes much later.
Each stage should prove one narrow claim before the next stage depends on it:
- the repository and tests are repeatable;
- different programming languages agree on control messages;
- world inspection is read-only and trustworthy;
- one connected worker behaves normally;
- two workers can own fixed areas without overlap;
- a player can cross a boundary without duplication or loss.
That order makes failures easier to understand and reduces the chance of building a large system on an unproven assumption.
Elah 0.0.3 | Repository | Releases | Security