Region ownership is the engine.
Aurora replaces a single server tick with owned regions, one deadline-driven scheduler, and explicit paths between them. Paper remains the compatibility input; the execution model is SourbyCraft’s own.
A tick is a contract, not a habit.
The architecture starts from ownership. If a piece of state belongs to a region, only that region’s owner may mutate it. Everything else is a boundary that must be named, measured, and tested.
State has an owner.
Chunks, entities, and block changes are grouped into regions with a single mutating thread.
Deadline decides.
Region work is scheduled by deadline, not by incidental call order or a global tick loop.
Crossing is visible.
Cross-region and global work use explicit paths, with outcomes and stalls recorded rather than hidden.
What actually runs, and where.
This is the order the runtime documents. It is deliberately not a marketing diagram: each step has an owner, a failure mode, and a test gate.
Bootstrap stays global
The server lifecycle, configuration, and world admission run before region threads take ownership. A region never inherits a half-started world.
The scheduler chooses a region
Aurora schedules region work by deadline. The scheduler owns the decision; a region does not run because a caller happened to be nearby.
One owner thread mutates
Chunks, entities, and block state in a region are mutated by that region’s owner. Cross-region work has an explicit path and a visible cost.
The tick is observed
Durations, missed deadlines, stalls, and queue depth feed the same metrics runtime used by commands, HUD, and profiles.
What changes for a plugin.
The Paper API still exists under a new namespace, but the thread a callback runs on is no longer assumed to be the only thread. Code that reaches across regions must say so, or use the bridge when it cannot.
- Ownership
- Do not mutate a region from a thread that does not own it. The runtime refuses the write instead of racing it.
- Scheduling
- Region-aware scheduling is the supported path. A global “next tick” callback is not a universal escape hatch.
- Bridge
- Non-region-aware plugins can opt into the compatibility bridge. It is still being qualified and is off by default.
- API
- The Canvas plugin API is removed.
dev.iyanz.sourbycraft.apiis the supported namespace; legacy names read with warnings until Build 50.
The engine is documented next to the release.
The Aurora notes describe the current release, its ownership rules, the compatibility boundary, and what is still gated. No benchmark numbers are invented to fill the page.