Tombstone
lamancha iv: the service shell
Nov 2019 โ May 2020 ยท age 37โ38
What it was
The server that stood around the young Adama language, written inside the incubator and moved out in one commit "to offload". It was a Netty WebSocket server that compiled a Hearts game at boot, ran the language server in the same process, and sent each connected player only their own privacy-filtered view of the game document. Around that core sat a fluent Java DSL for a developer site, cookie tokens signed with a home-made hash, a deployment config that could roll new game rules out to a percentage of tables, and a demo of three Raft peers in one JVM. About 3,700 lines. It served a single table of Hearts well enough for a Svelte client, and it did not compile once it left home.
Wins, for the age
- At thirty-seven, Jeff had the per-viewer projection working end to end: one living document, each player seeing only what the rules allowed. That model as the unit of state came a year ahead of Cloudflare Durable Objects (2020).
- Ran the language server and the game server in one process, so editor tooling and the live runtime could never disagree.
- Treated game rules like production code: a canary percentage and a metric name, so a new rule set would reach a fraction of tables first.
- Reached for Raft as the durability story after the earlier chain-replication design, testing the idea before committing to it.
What it taught
- A server is where a language's promises get tested. The projection held; the authentication and the store were placeholders, and placeholders are what remain.
- Do not invent token schemes, even for a devkit. The cookie carried its own secret beside its signature, so anyone could have minted one.
- Offloading is not deleting. Moving the shell out kept the compiler tests green and left 3,700 lines that no longer built.
- Small typos have large blast radii: one literal string where a variable belonged sent every connection to the same shared document, and one Hearts table hid it.
Genealogy
Ancestors: Lamancha II: the runtime, compiler and language server it wrapped. Descendants: Adama Caravan: the durability question Raft only started to answer. Adama Platform: the Netty WebSocket tier and hosting layer, done properly. Part of: Lamancha.
Epitaph
Here lies a server that trusted every cookie and gave everyone the same document. It still showed each primate at the table only their own hand, and that was the part worth keeping.