Dependency Residue: The Most Expensive Dependency Is the One You Think Is Gone

13 MIN READ
ARCHITECT'S BRIEFExecutive summary for technical decision-makers

Dependency residue is the cost that keeps arriving after a transformation program has formally eliminated the thing that generates it. The decommission ticket closes. The program reports complete. The steering committee sees the savings line it was promised. And somewhere outside the boundary the cost model drew, a service account still authenticates against the directory you were leaving, a backup job still depends on a library controlled by the vendor you exited, and an audit right still survives the termination.

None of that necessarily means the forecast was wrong. The model may have been right about everything it measured. It measured the wrong perimeter.

dependency residue — an eliminated platform inside the cost model boundary while identity, backup, audit, runbook, and data dependency lines still cross it to live systems
The cost model closed the boundary. Five dependencies never crossed back inside it.

The Cost Model Drew a Boundary. The Dependency Didn’t Agree.

Every transformation program has two boundaries, and most programs only draw one of them.

The first is the cost model’s. It is drawn where things have an owner and an invoice: the hypervisor subscription, the instance fleet, the SaaS contract, the data center lease. Cost models follow accounting boundaries because that is what they are built from. A line item either exists in the model or it doesn’t, and when the program eliminates it, the model records the saving.

The second is the dependency’s. It is drawn wherever execution and obligation actually run: which systems call which, which credentials authenticate where, which data is read from which location, which contract clauses survive which events, which runbooks assume which platform. Dependencies follow execution and obligation boundaries, and they have no reason to align with a budget line.

The boundary used by the cost model is not the boundary used by the dependency. That gap is the whole mechanism. When a program declares something eliminated, it is making a claim about the first boundary and assuming it holds for the second.

The same boundary problem appears in cloud architecture strategy: placement is often priced at the service or infrastructure boundary while dependencies execute across identity, data, network, and operational boundaries. Transformation programs inherit that mismatch and apply it at the moment it costs the most: closure.

Dependency Residue Is Not a Repatriation Problem

Rack2Cloud first named dependency residue inside the repatriation economics model behind the Cloud Repatriation Economics Engine. The repatriation case is clean: compute comes home on schedule, while identity, observability, and CI/CD stay anchored to the provider being left. The workload moves. The authority layer governing it doesn’t. The program reports complete while the cloud bill keeps arriving.

Repatriation exposed the mechanism. It didn’t define it. Nothing in that pattern depends on the direction of travel, the platform involved, or whether the thing being eliminated is infrastructure at all. Any transformation program that declares something gone and measures that claim against a cost model is exposed to the same error. The framework is therefore generalized here as a property of transformation cost models, with repatriation as its originating instance rather than its scope.

That places it squarely in Economic Architecture, the Cloud Architecture Learning Path stage that treats exit modeling as a continuous discipline rather than a migration-time surprise. Residue is what that discipline misses when the model’s boundary is drawn at the line item instead of the dependency.

FRAMEWORK #77 — DEPENDENCY RESIDUE

Dependency residue is the economic, operational, contractual, or governance dependency that persists after a transformation program declares its originating system, platform, service, or capability eliminated, and that the program’s cost model no longer counts.

01

The Condition

A transformation program defines what is being eliminated — a platform, service, contract, or capability — and its cost model draws the boundary there.

02

The Boundary

The cost model stops counting the eliminated dependency. The boundary follows accounting lines: budget owner, invoice, contract.

03

Failure State

Runtime, contractual, operational, or governance paths still depend on it. The dependency follows execution and obligation lines, not the ledger.

04

Consequence

The residual dependency keeps generating cost or exposure after the program reports complete, outside any line item the program still owns.

The program closes against its cost model. The dependency never agreed to that boundary, so the cost moves outside the model instead of ending.

Architectural Relationships

#143

Dependency Visibility Boundary

RELATED MODERATE

Why It Connects

Constrains — #143 asks whether a dependency surface can be seen at all; #77 asks whether a dependency that was seen is still counted once elimination is declared. Dependencies beyond #143’s boundary are a common source of residue, but residue also forms around fully mapped dependencies the cost model excluded.

Explore Framework →
#137

Operating Model Transfer Gap

RELATED MODERATE

Why It Connects

Extends — #137 measures the governance and authority that must be recreated on the target; #77 measures what the source still costs while that recreation is incomplete or deferred. Governance Orphaning is one route to residue, not the residue mechanism itself.

Explore Framework →
#78

Stranded Capacity Risk

RELATED MODERATE

Why It Connects

Defines — Both originated as cost-model blind spots in the repatriation economics work: #78 prices capacity bought and never used; #77 prices dependency the model stopped counting after elimination was declared.

Explore Framework →
#76

Repatriation Elasticity Gap

RELATED WEAK

Why It Connects

Shares — Shared origin in the repatriation economics model (/cloud-repatriation-cost-model/) as a separate cost variable. #77 has since been generalized beyond repatriation, so the tie is common origin, not common mechanism.

Explore Framework →
#79

Economic Persistence Bias

RELATED WEAK

Why It Connects

Shares — Shared origin in the repatriation economics model. #79 is the decision bias that keeps a workload in place; #77 is the dependency that remains after a workload is declared moved. Common origin, not common mechanism.

Explore Framework →
#80

Operational Amortization Window

RELATED WEAK

Why It Connects

Shares — Shared origin in the repatriation economics model. Unpriced residue is one reason realized savings lag the forecast inside #80’s window, but #77 is no longer scoped to repatriation. Common origin, not common mechanism.

Explore Framework →
Download: Framework #77 — Dependency Residue
The definition, the four-node flow, the failure-state chain, the diagnostic signals for closure review, and the framework’s architectural relationships — one-page reference.
PDF · FRAMEWORK REFERENCE
[↓] Download Framework →

Five Transformations, One Boundary Error

If dependency residue were only a repatriation artifact, it would show up in one kind of program. It shows up in all of them. The five cases below are deliberately unlike each other: different layers, different platforms, different kinds of elimination. Each one reads the same way: what the cost model scoped, what the dependency actually followed, and where the residue now bills.

01 — Compute moved. Identity didn’t.

The cost model scoped the workload: instances, storage, runtime, the line items with a platform owner. The dependency followed the authentication path: service accounts, federation trusts, and conditional-access policy, all still anchored to the directory the program was leaving. The residue bills as the identity tenant nobody can retire, plus the licensing, logging, and privileged-access tooling that come with it. The same omission can end two ways. When the excluded identity dependency breaks, you get a migration that succeeded while the identity chain didn’t. When it holds, you get residue. It keeps working, and it keeps costing.

02 — Hypervisor changed. Backup tooling didn’t.

The cost model scoped the hypervisor subscription. The dependency followed the backup and migration tooling, which reads VMware virtual disks through a library whose distribution the vendor controls and whose license restricts redistribution. Exits aren’t instantaneous. For as long as any VMware estate remains to protect or to move, some tooling can depend on access to VDDK, and when Broadcom’s public VDDK download pages stopped resolving in August 2026, tooling that depended on obtaining the library through that route lost that acquisition path. That is the circular dependency a VMware exit plan assumes it controls, priced at zero the moment the hypervisor line left the model.

03 — Contract terminated. Audit exposure didn’t.

The cost model scoped the subscription and stopped counting at termination. The dependency followed the contract’s survival clauses, because audit rights can outlast the exit. The residue is everything required to answer one: retained deployment evidence, license-position records, the people who know what ran where, and the legal time to respond. None of it has a budget line once the vendor doesn’t.

04 — Platform replaced. Operating process didn’t.

The cost model scoped the platform. The dependency followed the operating model: change procedures, runbooks, monitoring conventions, and escalation paths written around the old platform’s constructs. Where that operating context is never re-established on the target, teams keep the old process alive by hand: parallel tooling, retained specialists, a console someone still logs into. The platform left the model. The process kept its headcount.

05 — Application migrated. Data gravity didn’t.

The cost model scoped the application tier. The dependency followed the data. Source-of-truth datasets too large, too regulated, or too entangled to move on the application’s schedule stay where they were, and data gravity pulls the application back across the gap on every query. The residue bills as egress, replication, latency workarounds, and a storage estate that was supposed to be decommissioned.

dependency residue across five transformations — what moved versus what the dependency kept: identity, backup tooling, audit exposure, operating process, data gravity
Five different eliminations. The same boundary error in every one.

Every card borrows its evidence from a mechanism this site has already documented. That is deliberate, and it is the point. Those mechanisms explain why each dependency survives the transformation. Dependency residue explains why the cost model reported it gone anyway. The survival is the evidence. The miscount is the framework.

The pattern also isn’t new to this series. The capacity you paid for but never used is the same class of blind spot from the other direction: a cost the model counted and the organization never consumed. Residue is a cost the organization still consumes and the model no longer counts.

Download: Dependency Residue Carousel
The five transformation cases on a single swipe: what each cost model scoped, what each dependency followed, and where the residue bills. A reference to bring into the next program-closure review.
PDF · 8 SLIDES
[↓] Download Carousel →

This Isn’t the Audit-Rights Problem. It Isn’t the Exit-Cost Problem Either.

The closest misreading of this article is that it restates one of its neighbors. It doesn’t, and the difference is worth making explicit, because a program team that treats them as one problem will fund one fix and assume all four are closed.

Vendor relationships end, but audit rights often don’t. That post tracks what survives legally or contractually after a declared exit. This post tracks what survives economically or operationally after a declared elimination. Card 03 above sits on the seam between them: the audit clause is the obligation that survives, and the residue is the cost of being able to answer it, which the cost model dropped at termination.

Exit cost as a first-class metric prices the cost of leaving before commitment, at adoption time, so the exit premium is visible before it is locked in. Residue is the other end of the same lifecycle. It is what the elimination model fails to count after the program has already declared the exit done.

And the dependency audit problem that Framework #143 anchors is about visibility: dependencies that can’t be reconstructed from configuration and documentation alone. Residue doesn’t require invisibility. A fully mapped dependency still becomes residue the moment the cost model stops counting it.

MechanismQuestion it answers
Dependency Visibility Boundary (#143)Could we see the dependency?
Operating Model Transfer Gap (#137)Was the operating context recreated on the target?
Exit cost as a first-class metricWhat will leaving cost, priced before commitment?
Audit rights outlasting the exitWhich legal obligation survives the declared exit?
Dependency residue (#77)What did the cost model stop counting while the dependency remained?

A program can pass the first four questions and still fail the fifth, because the fifth question is asked of the cost model itself.

Finding Dependency Residue Before the Program Closes

The fix is not simply a better spreadsheet. A more detailed version of the same cost boundary still misses whatever the program has already declared outside scope. The fix is to test the closure claim against the dependency boundary before the program is allowed to close: trace what is actually running, authenticating, replicating, and obligated, and compare it to what the model says is gone.

The middle column below is deliberately runtime-oriented. Ledger evidence confirms the cost model’s claim, which is the one claim that doesn’t need confirming.

Boundary questionWhat to traceResidue signal
What was declared eliminated?Runtime calls, credentials, network routesThe old endpoint is still being invoked
Which service was removed from the model?Authentication and authorization pathsA credential or trust relationship remains active
Which contract was terminated?Operational obligations and evidence pathsAudit or compliance activity is still required
Which platform was replaced?Backup, monitoring, and automation executionOld tooling still runs or still has to be able to run
Which data path was migrated?Replication, access patterns, egressThe old location still incurs cost
dependency residue found at closure review — the ledger reports zero while a runtime trace still shows live calls, active credentials, and ongoing egress
The ledger confirms the cost model’s claim. The runtime trace tests it.

Building the register this requires is the work of Dependency Architecture, the Learning Path stage where dependencies are classified before migration, consolidation, or exit pressure forces the question. Closure review is where that register gets tested against what the program claims.

Not every residue signal can be eliminated before closure. Retention periods, regulatory obligations, and datasets that genuinely can’t move on schedule are real. The discipline is not zero residue. It is zero uncounted residue: anything that survives the elimination gets a named owner and a budget line before the program reports complete. Counted, it is a known ongoing cost. Uncounted, it is the most expensive dependency in the estate, because nobody is managing it and everybody thinks it is gone.

>_
Assessment: Migration Readiness Assessment
An independent review of what your transformation program has scoped against what its dependencies actually follow: identity, backup tooling, contractual obligations, operating process, and data placement. You get back the residue your cost model isn’t counting before the program closes.
[+] Request Assessment →

Architect’s Verdict

Dependency residue isn’t an estimating error. A cost model can be right about everything inside its boundary and still be wrong about the program, because the boundary was drawn around the things that had an invoice and an owner, and the dependency was never obliged to respect that line.

The real problem is that transformation programs close against the ledger. Identity, backup tooling, audit obligations, operating process, and data all follow execution and obligation paths the ledger doesn’t record. So the savings get reported at the boundary, and the residue gets paid somewhere outside it, by a team that never agreed to carry it.

The cost-model boundary is not the dependency boundary. Closure is a runtime claim, not an accounting one, and it should be tested like one.

A dependency isn’t gone when the cost model stops counting it. It’s gone when nothing still calls it, bills for it, or can be held to it.

Additional Resources

>_ Internal Resource
Cloud Architecture Strategy
the pillar covering placement, economics, and dependency decisions across cloud and hybrid estates, including the data-gravity argument card 05 draws on.
>_ Internal Resource
Economic Architecture
the Cloud Architecture Learning Path stage where exit modeling and economic gravity are treated as continuous design disciplines; residue is what that modeling misses at the line-item boundary.
>_ Internal Resource
Dependency Architecture
the stage where dependencies are classified before exit pressure arrives; the register closure review needs to test against.
>_ Internal Resource
Vendor Relationships End. Audit Rights Often Don’t.
the legal and contractual counterpart: which obligations survive a declared exit, where this post covers what survives economically and operationally.
>_ Internal Resource
Exit Cost as a First-Class Metric: The Architecture Constraint Nobody Models
the adoption-time end of the same lifecycle: pricing the cost of leaving before commitment.
>_ Internal Resource
Your VMware Exit Plan Assumed a Tool You Didn’t Control
the VDDK case behind card 02: backup and migration tooling whose access runs through the vendor being exited.
>_ Internal Resource
Your Migration Succeeded. The Identity Chain Didn’t.
the outage outcome of the identity dependency in card 01; residue is the outcome when that same dependency keeps working.
>_ Internal Resource
The Hypervisor Is Not the Migration Target — The Operating Model Is
Framework #137, the operating-context gap behind card 04.
View 6 more resources

Editorial Integrity & Security Protocol

This technical deep-dive adheres to the Rack2Cloud Deterministic Integrity Standard. All benchmarks and security audits are derived from zero-trust validation protocols within our isolated lab environments. No vendor influence.

Last Validated: September 2026   |   Status: Production Verified
R.M. - Senior Technical Solutions Architect
About The Architect

R.M.

Senior Solutions Architect with 25+ years of experience in HCI, cloud strategy, and data resilience. As the lead behind Rack2Cloud, I focus on lab-verified guidance for complex enterprise transitions. View Credentials →

The Dispatch — Architecture Playbooks

Get the Playbooks Vendors Won’t Publish

Field-tested blueprints for migration, HCI, sovereign infrastructure, and AI architecture. Real failure-mode analysis. No marketing filler. Delivered weekly.

Select your infrastructure paths. Receive field-tested blueprints direct to your inbox.

  • > Virtualization & Migration Physics
  • > Cloud Strategy & Egress Math
  • > Data Protection & RTO Reality
  • > AI Infrastructure & GPU Fabric
[+] Select My Playbooks

Zero spam. Includes The Dispatch weekly drop.

Architecture Audit Services

Fixed-scope audits for Zero-Trust Azure, VMware migration readiness, and recovery posture — no discovery call required to start.

>_ View Audit Services

>_Related Posts