The node is addressable
One machine address already exists and can receive traffic.
Investigation 018 · Node Execution Principles
INV-017 already earned shared lifecycle, shared fate, and shared network namespace inside one execution group. The mystery now is identity ownership: if the group is the execution unit, should network identity belong to the node or to that running group?
Begin the investigation ↓Prologue
A platform team starts with the simplest networking design: every execution group borrows the node IP, and port numbers distinguish applications.
Machine has one address: 192.168.10.25.
Unrelated web app listens on tcp/80.
Another web app also listens on tcp/80.
The machine cannot bind both to the same endpoint.
The network design, not the applications, created interference.
First Principles
Reusing that address for every execution group is economical and easy to explain. Before rejecting it, we must ask what independent groups require from one shared endpoint namespace.
One machine address already exists and can receive traffic.
We have not yet tested collisions, placement changes, replicas, or ownership.
The simplest network reuses what already exists. Reality must earn any additional identity.
Naive Architecture
The node already has identity. Reuse it for all groups and let endpoints differ by port.
The Architecture That Almost Worked
Every group uses the machine address. The machine delivers traffic to the intended group. Address allocation stays trivial and identity grows only with machines.
No workload-scale identity pool is required.
The network already knows how to address the host.
The design assumes unrelated applications never require the same endpoint.
The architecture is elegant until two unrelated applications ask for the same endpoint.
Breaking Our Design
Pressure. Two unrelated HTTP workloads on one node both need tcp/80.
Prediction. If borrowed node identity is sufficient, both should run independently.
Bind both workloads to node IP tcp/80.
First bind succeeds, second bind is rejected.
Independent workloads interfere through shared endpoint namespace.
Endpoint namespace cannot be shared by unrelated groups.
Port patching may avoid this one collision.
Collision is architectural, not application error.
Identity must separate neighbors.
Run the bind test on shared node identity.
Pressure. Distinct ports patch the first collision, but a later placement selects a different node address for the same workload specification.
Prediction. If the borrowed endpoint represents workload identity, infrastructure placement should not determine it.
Place a new instance of the same workload specification on Node B.
Its borrowed endpoint is determined by Node B rather than the workload instance.
Placement owns addressability by accident.
A running instance needs identity assigned to the group, not borrowed from its node.
Replica scale now tests neighbor independence.
Infrastructure location and workload identity diverge.
Addressability cannot be borrowed location.
This group currently borrows Node A identity.
Pressure. Three identical replicas on one node all require tcp/8080.
Prediction. If port patching solved identity, replicas should coexist without coordination.
Add three identical neighbors sharing one node IP.
One replica binds, others collide.
Scale-out of identical app self-conflicts.
Endpoint namespace must be neighbor-independent.
Ownership itself is still inverted.
Identity cannot depend on nearby workloads.
Replica coexistence requires per-group identity.
Replicas all target node IP endpoint tcp/8080.
Pressure. Node identity still governs workload addressability.
Prediction. Correct ownership classification should remove all three prior failures conceptually.
Classify responsibilities between node and execution group.
Wrong owner creates contradictions seen in earlier episodes.
Node-owned identity couples execution with addressing.
Node owns execution duties; execution group owns network identity.
Formalize contract before naming implementations.
Ownership must follow what changes versus what stays stable.
Identity ownership moves from node to group.
Classify all responsibilities to reveal ownership inversion.
Compact Review
The Turning Point
This does not yet design networking mechanics. It only derives correct ownership boundaries.
The Network Identity Contract
Running execution-group instances require identity that is exclusive across groups, shared within the group, owned independently of node and neighbors, and used for workload-addressed communication.
| Contract | Guarantee |
|---|---|
| Exclusive identity per execution group | Unrelated groups do not share one network identity. |
| Shared identity within one group | Cooperating processes in the group present one identity externally. |
| Node-independent identity ownership | Placement selects where an instance runs; the node address does not become that instance's identity. |
| Neighbor-independent endpoint namespace | Neighbor replicas do not collide simply because they share a node. |
| Workload-addressed communication | Applications address workloads, not machine location. |
Explicit non-goal: this contract does not promise address persistence across replacement of an execution group.
Only Now: Kubernetes
After the generic contract is earned, Kubernetes terminology can be introduced: the execution group is the Pod, and the Pod receives its own IP identity.
This chapter does not explain allocation, namespace holder, virtual interfaces, routing, CNI, Services, or DNS.
Name after principle, never before principle.
Engineering Reflection
This principle is timeless across distributed systems. If location and identity are coupled, routine operations leak into application semantics.
Collision and relocation failures are removed by assigning identity to execution groups.
Address allocation, uniqueness enforcement, and routing remain later investigations.
20,000 nodes × 250 execution groups per node ≈ 5,000,000 identities.
Every running group consumes an identity.
Identity assignment and lifecycle become mandatory.
Connectivity must account for workload-scale identity growth.
Conflicts must be prevented across the platform.
Demands clear workload identity independent from underlying machines.
Separates application addressability from host placement to preserve mobility.
Applies INV-017 execution-group boundary to networking identity ownership.
Investigation Exercise
Reproduce same-IP same-port conflict.
Place a new instance on another node and observe that borrowed addressing follows infrastructure.
Add identical neighbors and observe collision without coordination.
Classify responsibilities and derive identity inversion.
Bridge to INV-019
Port collisions are removed by identity ownership, but nodes remain finite physical machines. Multiple groups still compete for shared CPU and memory capacity.
If unmanaged shared identity causes port contention, unmanaged shared CPU and memory cause execution contention.