Developer Productivity & Platform EngineeringPlaybook3 min readUpdated September 2026

The Real Cost of Vendor Lock-In (and When to Actually Migrate)

Every infrastructure vendor creates some lock-in: proprietary APIs, data formats, or pricing that punishes leaving. The mistake is treating all lock-in as equally dangerous. Some dependencies are fine to live with for years. Others quietly become the reason a founder can't negotiate on price or can't hit a compliance requirement a customer is asking for.

Separate Switching Cost From Switching Risk

Switching cost is engineering time and money. Switching risk is what happens if you can't switch when you need to, whether that's a price hike, an outage pattern you can't accept, or a compliance gap the vendor won't close.

A dependency with high switching cost but low risk, a well-run managed database, say, is usually fine to keep. High risk with high cost is the combination that deserves an actual exit plan before you need one, not after the vendor has already announced the change that forces your hand.

The Outage-Budget Signal Most Teams Miss

If a vendor's own reliability is worse than the availability target you've promised your customers, their downtime is quietly eating your own uptime budget every time they have an incident, no matter how well your side of the system performs1.

That's a concrete way to test whether a dependency is a risk: pull their public status history for the last year and compare it against what you've actually committed to. A vendor with a spotless record is a low-risk dependency even with a high switching cost. A vendor with a rough quarter behind them deserves a closer look, whatever the pricing looks like.

Price Isn't the Only Lock-In Cost

Data egress fees, proprietary query languages, and integrations built specifically around one vendor's quirks all add to exit cost quietly, over years, without anyone deciding to accept that risk on purpose. Say your team builds a dozen internal tools directly against a vendor's proprietary API over two years; none of those individual integrations felt like a big decision, but together they're now the reason leaving would take months, not weeks.

Ask, for any new core dependency you adopt: if we had to leave in eighteen months, what would that actually take? If no one can answer, that's the gap, and it's worth closing before the dependency gets deeper.

When Staying Is the Right Call

Migrating off a working dependency has its own cost and its own risk: a migration is itself an outage risk, and the engineering time spent moving off a vendor is time not spent on the product.

If the vendor is reliable, the price is fair, and the risk of needing to leave is genuinely low, the right move is often to document the exit plan and not execute it yet, rather than migrate preemptively out of anxiety about lock-in in general. Lock-in itself isn't the problem. An exit you can't execute when you actually need to is the problem.

For example, a small team runs its primary database on a reliable managed service at a fair price. Leaving would take months, but the vendor's status history is clean and no customer requirement is pending. The sensible move is a one-page exit note naming the alternative, the rough steps, and the likely timeline, then a check at the next review. Compare that with a vendor whose reliability keeps slipping below your own promise: there, a live migration plan is justified now. The difference is not how locked in you are, it is how likely you are to need the exit soon.

Revisit the Decision on a Schedule, Not Just During a Crisis

The worst time to evaluate a vendor dependency is during the outage or price hike that made it urgent. Put a standing review on the calendar, once or twice a year, for your short list of high-risk dependencies, so the evaluation happens on your terms.

That review doesn't need to be exhaustive. A short check against the same two questions, switching cost and switching risk, is usually enough to catch a dependency that's quietly drifted from fine to risky since the last time anyone looked.

Bring whoever owns the vendor relationship into that review, not just engineering. Pricing changes and contract terms often reach a founder or a finance lead before they reach the engineers who'd actually have to execute a migration, and the gap between those two groups knowing is where lock-in risk quietly compounds. A fifteen-minute conversation once or twice a year closes that gap far more reliably than hoping someone mentions it in passing.

Use these questions in a standing review of each high-risk vendor:

  • Would leaving be expensive, risky, or both? High cost combined with high risk deserves a written exit plan before you need one.
  • Is the vendor's public reliability record worse than the availability target you promised your own customers?
  • Do egress fees, proprietary query languages, or vendor-specific integrations make an exit harder than it looked at adoption?
  • If you had to leave in eighteen months, can anyone on the team say what that would take?
  • Has whoever owns the contract, such as a founder or finance lead, joined the review alongside engineering?
Executive Capability Standard

What Good Looks Like

A healthy approach to lock-in separates switching cost from switching risk, and keeps a real exit plan only for the dependencies where losing access would actually stop the business.

Building The Capability (5-Stage Skill Ladder)

1. Learn:List your core infrastructure vendors and rate each on switching cost and switching risk separately.
2. Do Manually:Write a one-page exit plan by hand for your single highest-risk dependency, naming the alternative and rough migration steps.
3. Delegate:Assign an engineer to review each core vendor's public status history against your own uptime commitment once a quarter.
4. Automate:Set an alert on any vendor pricing or terms change so a shift in lock-in risk doesn't go unnoticed for months.
5. Buy:Get a fractional CTO or infrastructure advisor to review your dependency map before a fundraise or acquisition, when buyers will ask about this directly.

How to Get Started

Frequently Asked Questions

How do we know if a vendor dependency has become too risky to keep?

Look at three things: whether their pricing has changed unfavorably without your ability to negotiate, whether their reliability is worse than your own uptime commitment, and whether you can name a realistic path to leave within a defined timeframe. If two of the three are shaky, it's worth a formal review.

Should every core vendor have a written exit plan?

For the handful of dependencies that would be genuinely hard to replace, yes: a short document naming the alternative, the rough migration steps, and the estimated time is enough. You don't need this for every SaaS subscription, just the ones where losing access would stop the business.

Is multi-cloud the answer to vendor lock-in?

Rarely, for a small team. Running fully portable across multiple clouds usually costs more in engineering time than the lock-in risk it removes. It's more practical to keep your core logic portable and accept lock-in on commodity infrastructure you could replace without much pain.

Sources

Where we quote a benchmark, we show its source. Other figures in this guide are estimates or general guidance, so check them against your own numbers.

  1. Allowed downtime per year by availability target. Google SRE Book, Table 1-1 Availability table, 2016.

Related Guides