← Back
Home › Systems › CI/CD and developer tooling

build-system

hermetic build system

Bazel, Buck2

SystemTechniques · 7Primitives · 29 build-system Work-stealing dequeconcurrency · medium: Per-worker deque: the owner pushes and pops at the bottom without contention, idle workers steal from the top; the core of Rayon, Tokio and Go.›DAG workflow executiondistributed · medium: Run a graph of dependent tasks by releasing each one when its inputs are done, longest chain first, and skip any task whose input hashes are unchanged.›Critical path analysisgraphs · medium: Longest dependency chain in a DAG of timed spans or build actionsReproducible buildssecurity · medium: Bit-identical outputs: fixed timestamps, ordering, paths and toolchainsHermetic executionsystems · medium: Run actions with only declared inputs in a sandbox and fixed environmentIncremental computationsystems · medium: Dependency graph of derived values recomputed only when inputs change (reactive cells, spreadsheets)Durable job queuedistributed · medium: Persisted tasks that workers lease for a visibility timeout, ack on success and retry with backoff; at-least-once execution that survives worker and queue crashes.›Topological sortgraphs · low: Order the vertices of a DAG so every edge points forward; the core of build systems, schedulers and dependency resolution, with cycle detection for free.›Content-addressed storagestorage · low: Store each blob under the hash of its bytes: immutable, deduplicated by construction, self-verifying on every read, and composable into Merkle trees.›Cgroups and namespaceshardware-os · low: Linux namespaces limit what a process can see; cgroup v2 limits and accounts what it may use. Containers, sandboxes and job schedulers are built from the two.›Cryptographic hashes (SHA-2, BLAKE3)security · low: Collision-resistant fingerprints of data; SHA-256 for interoperability, BLAKE3 for speed, HMAC/HKDF for keyed uses.›Merkle treedata-structures · low: Hash tree for verifying and diffing large datasets with logarithmic proofsString interningdata-structures · low: Store each distinct string once and refer to it by idFile system watchinghardware-os · low: Treat OS change notices as hints, debounce them, and rescan and diff a snapshot whenever notices overflow or may be lost.›Glob matchingsearch-sort · low: Glob/gitignore pattern matching without backtracking blowupEpoch-based reclamationconcurrency · low: Threads announce a global epoch while touching shared lock-free data; garbage retired in epoch e is freed once the epoch reaches e + 2.›Memory orderingconcurrency · low: What Relaxed, Acquire, Release and SeqCst atomics actually guarantee, what they cost on x86 and ARM, and which one each pattern needs.›Exponential backoff with jittersystems · low: Retry after delays that grow geometrically and are randomized, so failed clients spread out instead of hammering a recovering service in synchronized waves.›BFS and DFSgraphs · low: The two basic graph traversals; BFS gives hop distances and levels, DFS gives discovery/finish order for cycles, components and topological order.›Deterministic serializationfinance · low: Canonical byte encodings (RLP, SSZ, canonical CBOR) so every node hashes identical bytesTar archive formatstorage · low: Ustar/pax tar headers and streaming archivesOverlay filesystemhardware-os · low: Union mounts (overlayfs) stacking read-only layers under a writable layerHash consingdata-structures · low: Intern structurally equal immutable terms so equality is pointer comparison and sharing is maximal+ 13 more primitives

Similar systems

Share the most building blocks with this one.