Skip to content

Glossary — Erlang/Elixir ↔ RUSM

Coming from the BEAM? RUSM's model is deliberately familiar. This table maps the Erlang/Elixir concepts you already know onto their RUSM equivalents.

Erlang/ElixirRUSMNotes
processa Wasm instance running as a Tokio taskown stack, heap, syscalls, permissions
schedulera Tokio worker thread (work-stealing)M:N over a few OS threads
reduction countingWasmtime epoch interruptionforces fair yields, even in tight loops
mailboxper-process async channelhost copies message bytes across memories
send/2send(pid, msg)fire-and-forget to a mailbox (Process.send / send_bytes / Send)
receivereceive()suspends the process until a message arrives (Process.receive / receive_bytes / Receive)
linkbidirectional failure propagation (OTP core)a crash signals linked peers; guests use monitor + an in-guest Supervisor
monitorone-way failure notificationobserve without dying together; a __down message, no polling
supervisora process that restarts crashing children"let it crash"
:globaldistributed registrycluster-wide name → pid
Node.connect/1, epmdQUIC + TLS node transportsecure node-to-node links
iex --remshrusm attach <node>live REPL into a running node
:observerthe dashboard's observer viewlive processes, schedulers, memory
BEAMthe RUSM runtime (Rust + Tokio + Wasmtime)the host that runs everything

Dashboard & benchmark terms — the wire between a node and the observer/REPL:

TermMeaning
frameone sampled tick (throughput, latency, observer snapshot) sent to clients
scenarioa named benchmark (e.g. connection-storm) the node runs and streams; all scenarios now run on real engines
synthetic sourcea deterministic generator producing scenario-shaped data per tick — the Phase-0 bootstrap, before the engines were real
detail toggleswitch for the costly per-instance observer table

MIT licensed