---
id: server-architecture/002
title: Server runtime/engine options memo
epic: server-architecture
state: done
priority: 2
blocked_by: []
estimate: M
created: 2026-08-05
updated: 2026-08-03
claimed_by: null
claimed_at: null
delivers: []
review_artifact: null
---

## Resolution (2026-08-02)

**Decided, not written as originally scoped.** A direct architecture conversation settled this without the comparison memo ever getting written: **world servers run Godot 4 headless, one OS process per world instance, over `WebSocketMultiplayerPeer`** — chosen specifically because sharing simulation code between server and predicting client eliminates prediction-divergence bugs, the dominant risk in client-side prediction generally. A **separate director service** (world registry, membership, instance lifecycle, portal routing, accounts) runs alongside it.

**Update 2026-08-03:** the director's own runtime — this task's one surviving open question — is now also closed: **Node/TypeScript**, confirmed directly by Kris and implemented in `server-architecture/005` (Stage 1, `land-of-lor/pocs/multiplayer-poc/director/`). Nothing about this task remains open.

Full decision recorded in `server-architecture/overview.md`'s "Runtime" section — read that, not this note, for the actual architecture and reasoning.

## What to do

Nothing is chosen yet for the server's runtime/language (`overview.md`'s open questions). Write a short options memo — not a decision — covering realistic candidates for a server that must: hold authoritative field/grid state, run the changing-line transmutation clock, match recipes, and tick Complex Item formulas (ports/stocks/rules) for potentially many simultaneous objects. Consider at least: a Godot-native server (if the client ends up in Godot, avoids a second stack), a general-purpose backend language/framework, and any actor-model or ECS-style runtime suited to many independently-ticking objects.

## Definition of done

A memo comparing 2-4 real candidates on: fit with the tick/formula model (§8), fit with the field-simulation approach chosen in task 001, hosting/ops simplicity (relevant to `server-instance`), and Kris's/agents' familiarity. End with a recommendation, not a final decision — this becomes a Question once the memo exists and Kris needs to actually choose.

## Where the work lands

`land-of-lor` repo.

## Docs to read first

`land-of-lor/docs/README.md` §8 (recipes & formulas — the tick engine this runtime must support), and this epic's own task 001 once it exists (the scaling approach may favor one runtime over another).