Glossary
Project-specific terminology and definitions
B
C
chunkThe atomic unit of distribution. A ChunkAssignment declares a count of Monte-Carlo iterations (with optional min/max and an early-exit target_error), a seed offset, and an optional permutation index. One chunk runs sequentially on one node, reusing a single handler, queue, and sink, and produces one ChunkReport of protobuf telemetry.
D
DBCWorld of Warcraft's client-side game database, shipped as a large set of tables (historically .dbc files). WoW Lab consumes them as extracted CSV, one file per table, and treats them as the source of truth for every spell, item, and talent number.
DESA simulation that advances a virtual clock by jumping to the timestamp of the next scheduled event rather than ticking at a fixed rate. The engine pops time-ordered events from a queue, advances the clock to each, and dispatches to a per-spec handler; nothing happens between events because nothing can.
I
J
N
NATSThe message broker backing beacon's pub/sub fan-out (Fly app wowlab-nats), co-located with beacon in lhr on the realtime hot path.
nodeAny compute participant that runs the simulation engine and signs its results with an Ed25519 keypair — a hosted Fly fleet machine, a contributor's desktop, a Latitude.sh burst server, or a browser tab. It subscribes to its own chunks:{publicKey} channel, fetches its work context, runs simulate_intent per iteration, and POSTs signed protobuf results back.
P
R
RedisThe external store backing beacon's presence manager (the nodes:online roster). Distinct from NATS, which is the broker — both back Centrifugo, for different subsystems.
ResolvedGameDataThe Arc-wrapped, cheap-to-clone, read-only view of every number a spec needs for one simulation. Built once at bootstrap by resolve_game_data, which introspects the spec and folds resolver answers into a builder, then read back by the generated builder functions.
S
sentinelThe scheduler. One Fly.io process (region lhr) that LISTENs for new jobs on the Postgres pending_job channel, splits each job into chunks, assigns them to eligible compute nodes, ingests signed completions over POST /chunks/complete, and finalizes results. Also hosts the HTTP API, Discord bot, cron jobs, and MCP server.
snapshotA DoT that locks in the player's stats (attack/spell power, crit, versatility, mastery, damage multiplier) at application time and uses those for every tick, ignoring later stat changes; refresh keeps the higher damage multiplier (rolling DoT).
