Glossary

A

actor
A lightweight, isolated unit of computation that encapsulates state and behavior, communicating with other actors solely through message passing.

B

base case
The branch of a recursive function that returns a result directly without making another recursive call, stopping the recursion.
BEAM virtual machine
The Erlang runtime environment, originally designed for telephone switches, that runs millions of lightweight processes with no shared memory and built-in fault isolation.
big endian
A byte ordering convention in which the most significant byte of a multi-byte value is stored at the lowest memory address.
bytecode
A compact, platform-independent representation of a program that a virtual machine interprets rather than executing directly as native machine code.

C

circular import
A situation in which module A imports module B and module B imports module A (directly or transitively).
compaction
The process of replacing a full append-only log with a minimal equivalent log that contains at most one entry per live key and no tombstone entries for deleted keys.
custom type
A user-defined type that packages one or more named variants into a single type, allowing the compiler to verify that every variant is handled in case expressions.

D

database migration
A SQL script that modifies the database schema in a versioned, reproducible way. Migrations are applied in order at startup so the schema is always consistent with the application code.
dataframe
A table of named, typed columns that all share the same number of rows, used as the primary data structure in data analysis libraries such as pandas and Polars. Column-oriented storage makes operations on a single column fast.
depth-first backtracking
A search strategy that explores one path as deeply as possible, then backs up to try alternatives when it fails.
destructuring
A syntax that unpacks a tuple or record into individual named bindings in a single expression.
dispatch
The selection of a specific code path based on the structure or value of arguments, typically via pattern matching on a tuple of inputs.
domain-specific language (DSL)
A small, specialized language or API designed for one class of tasks. Gleam's gleam/dynamic/decode provides a DSL for decoding untyped data into typed Gleam values.

E

Erlang
A programming language and runtime created in the 1980s at Ericsson for building fault-tolerant, distributed, real-time systems.
event log
A sequence of immutable records describing every change made to a system, where new events are appended rather than existing records updated in place.
eventual consistency
A replication model in which replicas are allowed to diverge during a network partition but guaranteed to converge to the same state once all nodes can communicate again.

F

fetch-decode-execute cycle
The fundamental loop of a CPU or virtual machine: fetch the next instruction from memory, decode its fields to determine the operation and operands, execute the operation, and repeat.
finite state machine
A computational model consisting of a fixed set of states, a set of events, and a transition function that maps each (state, event) pair to either a new state or an error. State machines enforce which sequences of events are legal, making implicit behavior explicit and testable.

G

generator
In property-based testing, a function that takes a seed and returns a randomly generated value of a given type paired with a new seed, allowing reproducible sequences of test inputs.
glob
A shell-style pattern that uses wildcards such as * (any sequence of characters) and ? (any single character) to match filenames or strings.
Global Interpreter Lock (GIL)
A mutex in CPython that prevents more than one thread from executing Python bytecode at a time, limiting true parallelism on multi-core hardware.
grapheme
A user-perceived character in text which may be composed of multiple Unicode code points.
guarded arm
A branch in a case expression that includes an if condition after the pattern, so the arm only matches when both the pattern and the condition are true.

H

hash
A fixed-size value computed from data by a hash function, used to map keys to positions in a hash table for fast lookup.
HTTP 404
The HTTP status code returned when the server cannot find the requested resource, indicating that the URL does not exist on that server.
HTTP 405
The HTTP status code returned when the server understands the request URL but does not support the HTTP method used (for example, DELETE on a read-only endpoint).

I

idempotent
A property of an operation such that applying it multiple times produces the same result as applying it once. Idempotent database migrations (using IF NOT EXISTS) are safe to run against an existing database.
immutable
A property of a binding in which the value assigned to a name cannot be changed after it is created.
inverted index
A data structure that maps each term to the list of documents (or locations) that contain it, enabling fast full-text search.

L

lightweight process
A unit of concurrent execution managed by the BEAM runtime that has its own isolated memory and message mailbox, but is far cheaper to create and schedule than an operating-system thread.
linear congruential generator (LCG)
A simple pseudo-random number generator that produces the next value by multiplying the current seed by a constant, adding an offset, and taking the result modulo a large prime or power of two.
Lustre
A Gleam package for building browser user interfaces.

M

mount
To attach a Lustre application to a DOM element so that the runtime controls that portion of the page, replacing its contents with the rendered virtual DOM tree.

N

named variant
One of the labeled constructors that make up a custom type, optionally carrying typed fields.

O

opaque type
One whose representation is hidden from other modules, so they can only interact with it through the functions the module provides.
opcode
The numeric code that identifies which instruction to execute in a machine instruction word; the remaining bits hold operands.
Option type
A built-in Gleam type with two variants used to represent optional values without null pointers.
OTP (Open Telecom Platform)
A set of libraries and design principles for building fault-tolerant Erlang and Gleam applications, including actors, supervisors, and the gen_server behaviour.

P

panic
An unrecoverable runtime error that immediately terminates the current process.
partial application
Creating a new function by fixing some of the arguments of an existing function, leaving the remaining arguments to be supplied later.
prepend
To add an element to the front of a list, producing a new list with that element as the head.
property-based testing
A testing approach in which a framework generates many random inputs and checks that a universal statement (a property) holds for each one, rather than checking specific hand-written examples.

R

Result type
A built-in Gleam type used to represent computations that may fail, forcing callers to handle both success and failure cases at compile time.

S

schema
A formal description of the structure and types of data in a record or message.
shadowed entry
A log entry that is superseded by a more recent entry for the same key, making the earlier entry irrelevant and eligible for removal during compaction.
short-circuit
An evaluation strategy that stops as soon as a definite outcome is known, skipping remaining steps.
shrinking
A step in property-based testing where a framework automatically simplifies a failing input to the smallest version that still causes the property to fail, making the counterexample easier to diagnose.
SQL injection
A security vulnerability in which an attacker inserts SQL code into a query by including it in user input that is interpolated directly into a SQL string rather than passed as a parameterised value.
statically typed
A property of a programming language in which the type of every expression is checked at compile time rather than discovered at runtime.
supervisor
A process whose job is to monitor child processes and restart them according to a defined strategy when they crash.
syntactic sugar
A shorthand syntax that makes code easier to read or write that can always be rewritten in a more verbose but equivalent form.

T

tail recursion
A form of recursion in which the recursive call is the last operation in the function, allowing the runtime to reuse the current stack frame instead of growing the call stack.
TCP (Transmission Control Protocol)
A network protocol that provides reliable, ordered, connection-oriented byte streams between two processes. HTTP, database connections, and most application-layer protocols run on top of TCP.
tuple
A fixed-length, ordered collection of values that may have different types, written with a # prefix in Gleam.
type parameter
A placeholder in a type definition that stands for any concrete type, allowing functions and data structures to work generically across element types.

V

vector clock
A map from node identifiers to event counts used to track causal ordering in a distributed system; merging two vector clocks takes the element-wise maximum of each node's counter.
virtual DOM
A tree of plain data values that describes the desired state of a user interface. The Lustre runtime compares successive trees and applies the minimum number of changes to the real browser DOM.