sim/src/cluster
Steve Biedermann eac68db433 feat: run shards as separate processes behind a gateway
The server is now a gateway that starts SIM_SHARDS shard processes
(`sim shard --index I --count N ...`), each with its own database from
the SHARD_DATABASE_URL template. The gateway steps all shards in
lockstep over a /control WebSocket, publishes the entity directory and
market board between steps, merges the shards' views into one world
for the UI and routes edits to the shards they concern.

Shards send entity messages and transfers to each other directly over
/remote WebSockets; every step waits until its outgoing messages are
accepted, so nothing is in flight when the next step starts or a
snapshot is taken. Shard processes exit when the gateway goes away.

Update Picard to f88b9cb and register every other shard as a console
peer `shard-N`, so one console session can list, inspect, manage and
message the actors of all shards.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-10-12 20:29:11 +02:00
..
gateway.rs feat: run shards as separate processes behind a gateway 2026-10-12 20:29:11 +02:00
protocol.rs feat: run shards as separate processes behind a gateway 2026-10-12 20:29:11 +02:00
shard.rs feat: run shards as separate processes behind a gateway 2026-10-12 20:29:11 +02:00
transport.rs feat: run shards as separate processes behind a gateway 2026-10-12 20:29:11 +02:00