-
Notifications
You must be signed in to change notification settings - Fork 0
[Architecture] Define the worldgen provider concurrency contract before enabling parallel provider execution #24
Copy link
Copy link
Labels
area:guest-runtimeRuntime-loaded guest execution model, host/runtime behavior, guest session semantics.Runtime-loaded guest execution model, host/runtime behavior, guest session semantics.area:runtimeRuntime behavior, lifecycle, ticking, session behavior, execution flow.Runtime behavior, lifecycle, ticking, session behavior, execution flow.area:world-loadingWorld/instance loading, chunk/world bootstrap, load/unload behavior.World/instance loading, chunk/world bootstrap, load/unload behavior.component:enginefreven-engine: core engine/runtime/simulation/client-server internals.freven-engine: core engine/runtime/simulation/client-server internals.component:sdkPublic SDK / author-facing crates, examples, ergonomics, contracts exposed to modders.Public SDK / author-facing crates, examples, ergonomics, contracts exposed to modders.priority:p2Normal priority. Planned work, worthwhile but not urgent.Normal priority. Planned work, worthwhile but not urgent.status:confirmedConfirmed bug/request. Reproduced, accepted, or clearly valid.Confirmed bug/request. Reproduced, accepted, or clearly valid.transport:cross-transportShared semantic work that must align across builtin/wasm/native/external.Shared semantic work that must align across builtin/wasm/native/external.type:architectureLong-term structural / contract / system design work, not just isolated implementation.Long-term structural / contract / system design work, not just isolated implementation.
Milestone
Metadata
Metadata
Assignees
Labels
area:guest-runtimeRuntime-loaded guest execution model, host/runtime behavior, guest session semantics.Runtime-loaded guest execution model, host/runtime behavior, guest session semantics.area:runtimeRuntime behavior, lifecycle, ticking, session behavior, execution flow.Runtime behavior, lifecycle, ticking, session behavior, execution flow.area:world-loadingWorld/instance loading, chunk/world bootstrap, load/unload behavior.World/instance loading, chunk/world bootstrap, load/unload behavior.component:enginefreven-engine: core engine/runtime/simulation/client-server internals.freven-engine: core engine/runtime/simulation/client-server internals.component:sdkPublic SDK / author-facing crates, examples, ergonomics, contracts exposed to modders.Public SDK / author-facing crates, examples, ergonomics, contracts exposed to modders.priority:p2Normal priority. Planned work, worthwhile but not urgent.Normal priority. Planned work, worthwhile but not urgent.status:confirmedConfirmed bug/request. Reproduced, accepted, or clearly valid.Confirmed bug/request. Reproduced, accepted, or clearly valid.transport:cross-transportShared semantic work that must align across builtin/wasm/native/external.Shared semantic work that must align across builtin/wasm/native/external.type:architectureLong-term structural / contract / system design work, not just isolated implementation.Long-term structural / contract / system design work, not just isolated implementation.
Problem / Motivation
The current v1 behavior is intentionally conservative and correct:
each hosted worldgen provider session executes through a serial execution domain.
That is the right first step for off-main-thread worldgen, but it is not yet a
contract for safe parallel provider execution. Before Freven runs multiple
columns concurrently for the same provider/session, it needs explicit answers
for:
Send + Syncalone is not enough to define gameplay/runtime correctness.Target direction
Design and document an explicit concurrency contract for worldgen providers.
Possible acceptable directions:
The result must say clearly:
Non-goals
architecture work
Done when