Garbage Collection¶
Core Idea¶
Reclaim resources that nothing currently reaches. From a set of declared roots, anything reachable by following the reference relation is live; anything else is unreachable and may be reclaimed without changing observable behaviour. The discriminator is reachability, not idleness: collectible means "can never be reached again," not "unused right now."
How would you explain it like I'm…
Toys With No String
Clean Up What's Unreachable
Reachability-Bounded Reclaiming
Broad Use¶
- Computer science: tracing collectors (mark-and-sweep, copying, generational), reference counting, and reclamation of file descriptors and connections.
- Law and property: escheat (dormant accounts and abandoned estates reverting to the state), intestate succession when the heir chain is severed.
- Libraries and archives: deaccessioning materials no longer reached by circulation, citation, or mission.
- Organisations: deprecation pipelines for products and APIs nothing depends on — the dependency graph is the reference graph.
- Ecology: decomposer chains reclaiming biomass no living organism uses, returning constituents to the nutrient pool.
- Finance: sweeping dormant accounts, escrow timeouts, stale orders.
- Bureaucracy: retention schedules destroying records past their reachability horizon.
Clarity¶
Turns "should we keep this?" from a judgment call into a graph-theoretic question relative to a declared root set, and makes the root set the focus of governance — almost every cleanup dispute is really a dispute about what counts as a root.
Manages Complexity¶
Collapses an unbounded, distributed bookkeeping problem into a single periodic computation over a graph, with only two well-understood failure modes: a mis-declared root set and a closure computed over stale data.
Abstract Reasoning¶
Provides a portable kit: identify roots first, treat reachability as a transitive fixed-point, choose between tracing (collects cycles, pauses) and reference counting (incremental, misses cycles), and state liveness invariants once and reuse them.
Knowledge Transfer¶
- CS → organisations: the move from "ask every owner" (reference counting) to "ask the dependency graph from declared surfaces" (tracing) recurs in deprecation.
- CS → law: the write barrier idea explains why ledgers need transactional notification of every ownership change for escheat to work.
- CS → records management: retention-schedule mandated destruction maps cleanly onto data-retention regimes with isomorphic failure modes.
Example¶
A platform team facing 412 microservices, 70 believed obsolete, declares the roots (every public API, paying feature, regulatory commitment), walks the call graph, and the unmarked services are the candidate set — replacing "we don't think anyone uses it" with "no root reaches X."
Relationships to Other Abstractions¶
Current abstraction Garbage Collection Prime
Parents (1) — more general patterns this builds on
-
Garbage Collection is part of Network Traversal Prime
Garbage collection contains a reachability traversal from declared roots to distinguish live resources from reclaimable ones.
Children (2) — more specific cases that build on this
-
Phantom reference Domain-specific is a kind of Garbage Collection
The proposed strict upward parent is
prime:garbage_collection. -
Weak reference Domain-specific is a kind of Garbage Collection
The proposed strict upward parent is
prime:garbage_collection.
Hierarchy path (1) — routes to 1 parentless root
- Garbage Collection → Network Traversal → Network → Reservoir-Flux Network → Conservation Laws → Invariance
Not to Be Confused With¶
- Garbage Collection is not Caching because caching retains items on a value heuristic (recency, frequency) and eviction is a performance bet, whereas garbage collection reclaims on a hard reachability predicate and freeing a reachable item is a correctness bug.
- Garbage Collection is not Sequestration because sequestration isolates and retains a resource, whereas garbage collection releases an unreachable resource back to the free pool.
- Garbage Collection is not Maintenance because maintenance preserves the live portion against decay, whereas garbage collection removes the dead portion that nothing reaches.