Program artifact
The instructions are available, but no running state exists and no machine resources are being consumed on its behalf.
Threshold · The Shared Machine
Start one process, then another. The machine accepts each without drama. Separate running state looks like all the boundary we need.
What boundary lets a shared machine treat one application's execution as a distinct, governable unit?
The machine provides CPU, memory, files, network, and operating-system services. Each process merely inhabits that shared environment. Coexistence is easy. Independence is still unproven.
Static state: Three distinct processes share one machine.
First Principles · Code Is Not Execution
A program on disk is instructions. When those instructions run, the machine supplies time, memory, files, communication, services, and state that exists only while the process lives.
The instructions are available, but no running state exists and no machine resources are being consumed on its behalf.
The instructions now have memory, CPU time, open files, connections, operating-system dependencies, and an independent lifetime.
Start the same program again to test whether identical code produces identical running state.
Both executions receive time from the same physical machine.
Static observation: One running execution depends on the shared machine. Starting identical code again would create another lifetime, not another physical world.
Having access to a resource is not the same as having an isolated resource boundary.
Naive Architecture · One Process Per Application
It is the obvious architecture because it genuinely works. A web service, worker, and utility start and stop independently while the operating system schedules them on one efficient machine.
Does CPU or memory treatment belong to the process, the application, or the machine?
Should the view of the surrounding machine belong to execution identity or remain a separate concern?
Should the filesystem context travel with the process or remain machine configuration?
Should network assumptions follow the process, the application, or the shared machine?
A process gives us separate running state. Whether the surrounding environment needs another abstraction remains unresolved.
Architecture That Almost Worked · Processes Plus Convention
Assign each application a directory, endpoint, resource expectation, and operator label. Under favorable conditions, this informal boundary is cheap, understandable, and correct.
Coordination Meter
Assign four conventions, then add applications and teams to watch informal agreements spread.
One trusted group keeps four shared conventions coherent.
Agreements spread across more deployment paths and runbooks.
The convention set is now a system that must be maintained.
Static observation: One team can coordinate directories, endpoints, resource expectations, and operator labels through convention.
Trusted, compatible applications with predictable demands can share one environment with very little platform machinery.
Every new application and team adds rules across directories, endpoint assignments, expectations, deployment systems, and runbooks. No single unit represents them.
Processes plus convention are enough while one trusted group can keep the surrounding environment coherent.
Separate machines provide stronger physical separation but waste capacity for small applications. One shared environment remains efficient. Something between those extremes is attractive, but attraction is not proof.
Breaking Our Design · 01 / Resource Pressure
CPU time and memory remain machine resources. As one execution's demand rises, latency and available capacity change for every neighbor sharing that environment.
Pressure Lab · Resource Demand
Change one execution's demand and observe what moves elsewhere on the shared machine.
Only its requested work changed.
Available capacity changes across the common environment.
Their own demand is unchanged; their environment is not.
Static diagnosis: A process identifier does not express resource-control intent. A later decision needs somewhere to refer. Allocation, ownership, limits, borrowing, enforcement, and pressure policy remain deferred to INV-019.
Resource governance must be addressable at the execution boundary without making shared resources private.
Breaking Our Design · 02 / Visibility
A process identifies which execution exists. It does not necessarily define what world that execution should observe.
Visibility Lab · Compare Views
The same three processes can be presented through two different views without changing which executions exist.
The operating environment has reason to manage all running processes.
The selected execution may need only the state relevant to its own work.
Only the intended environmental view differs.
Static diagnosis: Execution identity does not automatically define environmental visibility. A visibility-context decision needs somewhere intentional to attach; this scene does not define what must be visible.
Breaking Our Design · 03 / Filesystem Context
A directory convention repairs cooperative collisions. It does not change an application that was designed as though its expected filesystem were the whole world.
Filesystem Lab · Path Claims
Compare an intentionally shared dataset with two unrelated claims on the same location.
Assumes this location describes its environment.
Makes a different assumption about the same location.
Sharing remains valid when the architecture expresses it intentionally.
Static diagnosis: A filesystem-context decision needs an execution-level reference. Preparation is deferred to INV-016; isolation, layering, portable images, persistence, mounts, and storage semantics remain unresolved or in the Open Backlog.
Breaking Our Design · 04 / Network Context
Port reassignment works. At small scale, coordinated configuration may remain the best design. As applications multiply, the shared machine becomes a place where every execution negotiates around the others.
Network Lab · Endpoint Decisions
Associate an endpoint decision with each execution without inventing separate network identities.
Requests endpoint :8080.
One common environment cannot satisfy both assumptions unchanged.
Requests endpoint :8080; convention may reassign it.
Static diagnosis: Network context needs an execution-level reference. Independent network identity remains INV-018's mystery; mechanism and routing details are deliberately postponed.
Breaking Our Design · 05 / Failure Boundary
A process can fail independently while consequences cross the environmental boundary it never represented. Exit tells us that running state ended, not what every attached concern should do next.
Failure Lab · Terminate One Process
The concern labels remain after the process slot empties because their lifetime and ownership are unresolved.
The independent running state no longer exists.
How long should any associated state live?
Which guarantees existed, and where did consequences stop?
Can a responsibility inside an execution survive every way that execution disappears?
Does creation imply continued responsibility?
Would separating work from continued existence create a cleaner responsibility?
Static diagnosis: Process exit does not define attached-state lifetime, complete containment, or who decides what happens next. Those competing ownership designs remain open for INV-001.
Synthesis · One Reference, Separate Contracts
Resource, visibility, filesystem, and network concerns are independent. Yet every one needs to identify the same running execution before its own decision can apply.
Common execution reference
One common execution-level attachment point.Four separate contracts.
Static prompt: Assign each independent concern to the execution it governs. The final discovery remains unrevealed until all four relationships are visible.
Contract And Terminology Reveal
Every environmental concern governing the same execution must be able to refer to one common execution-level attachment point.
Resource, visibility, filesystem, network, and failure exposed the need for the common reference. They are examples and limits of this responsibility, not five additional contracts.
The machine may remain physically shared. The boundary only prevents each concern from reconstructing the intended execution from unrelated process-level conventions.
The Name Comes Last
One common realization of a boundary around a single process is called a
containerThe name is useful. It is not the discovery, and it does not prove the complete unit an orchestrator should manage.
How a container runtime creates the execution environment behind a stable contract.
Why one process boundary is not yet proven to be the complete orchestration unit; the Pod problem remains open.
What network identity belongs to the managed execution unit.
How finite CPU and memory are owned, allocated, borrowed, and protected.
Filesystem isolation, layering, portable images, persistence, mounts, storage semantics, and visibility mechanisms remain separate mysteries.
Specific operating-system visibility and resource-control mechanisms, including namespaces and cgroups, explain how implementations may realize parts of this architecture. Kubelet and other Kubernetes solution terms belong to later implementation investigations, not to this contract.
The timeless principle: an execution boundary should be defined by the guarantees the execution requires, not merely by the mechanism that starts the process.
Engineering Reflection
When multiple independent concerns describe the environment of the same execution, give them a common architectural attachment point instead of attaching each directly to unrelated implementation details.
Resource control, network identity, filesystem semantics, visibility, failure containment, runtime design, and orchestration remain separate problems.
For trusted, cooperative, compatible applications on a shared machine, the simpler design has fewer concepts, moving parts, and platform-created failure modes.
A richer attachment point is justified when several environmental concerns must refer to one execution without relying on scattered human agreements.
The richer boundary organizes complexity. It does not erase it.
Readers and operators must understand another architectural unit.
Something must create, maintain, and remove the richer boundary.
The system carries relationships beyond the process's running state.
More participants must agree on how the common reference is used.
More mechanisms must be observed, diagnosed, and maintained.
A named boundary can tempt us to assume guarantees its individual contracts never made.
Investigation Exercise · Four Steps
This thought experiment verifies only the common attachment-point discovery. It does not define any individual environmental contract.
For Applications A, B, and C, predict where resource, visibility, filesystem, and network decisions would attach.
Take Application A's four concern relationships, erase the application label, and ask what common object or boundary remains.
The contracts and implementations differ, but each relationship independently rediscovers the same execution.
Let every concern refer to the execution through one common attachment point while retaining its own separate contract.
Application A → resource · visibility · filesystem · network
Application B → resource · visibility · filesystem · network
Application C → resource · visibility · filesystem · network
[remove application names]
Concern → EXECUTION ← Concern
Prediction: Map all four concerns to the execution reference before removing the application names.
The exercise should produce only the common attachment point. It must not decide what any attached concern guarantees.
Ledger · Sources · INV-001 Bridge
| Deferred question | Why it is deferred | Where it belongs |
|---|---|---|
| How is the execution environment created behind a stable contract? | INV-000 identifies the attachment point, not the component that realizes it. | INV-016 — The Container Runtime Problem |
| Is one process boundary the complete unit an orchestrator should manage? | A single-process realization does not establish the orchestration unit. | INV-017 — The Pod Problem |
| What network identity belongs to the managed execution unit? | Network context is attached without deriving its identity contract. | INV-018 — The Node Networking Problem |
| How are CPU and memory owned, allocated, borrowed, and protected? | Resource context is attached without deriving finite-resource ownership. | INV-019 — The Node Resource Problem |
| How do filesystem isolation, layering, portable images, and visibility mechanisms work? | These mechanisms are not required to establish the common attachment point. | Open Backlog — not yet scheduled |
Can the thing doing the work also own the promise that it continues to exist?
The execution boundary tells us what one execution contains. INV-001 asks who, if anyone, should decide whether another must exist after it disappears.