Vendor lock-in is the condition where the cost of leaving a software provider exceeds the cost of staying, even when the provider has degraded in quality, raised prices, or changed terms. This paper presents a taxonomy of lock-in mechanisms - technical, contractual, and operational - and analyzes how each creates dependency. We then present strategies for building software products that compete on quality rather than lock-in, drawing on the product architecture of TELOSIS brands. The central argument is that lock-in is not an inevitable consequence of complex software. It is a choice made by the vendor. The alternative is structural independence, where users can leave at any time without losing data, functionality, or continuity.
How software vendors create lock-in. Technical lock-in vs contractual lock-in vs operational lock-in. Strategies for building products that compete on quality, not dependency.
1. Introduction
Every software vendor wants to retain customers. The legitimate way to do this is to build a product so good that customers choose to stay. The illegitimate way is to make leaving so painful that customers cannot afford to go.
Most enterprise software employs both strategies in some proportion. This paper is about how to recognize the illegitimate part - the lock-in - and how to build products without it.
Lock-in is not a technical problem. It is a business model problem. The vendor who depends on lock-in for retention has no incentive to improve the product. The vendor who cannot rely on lock-in must compete on quality every day. The user benefits from the latter. The vendor benefits from the former.
2. A Taxonomy of Lock-In
2.1 Technical Lock-In
Technical lock-in occurs when the user’s systems depend on proprietary interfaces, formats, or services that are not available outside the vendor’s platform.
Mechanisms:
| Mechanism | Example |
|---|---|
| Proprietary API | AWS Lambda. Cannot run on another cloud without rewriting. |
| Proprietary data format | A database that only the vendor’s software can read. |
| Proprietary protocol | A message queue protocol implemented by only one vendor. |
| Proprietary SDK | Application code written against a vendor-specific library. |
| Data egress friction | High bandwidth fees for extracting data from the platform. |
| Integration dependency | Other systems integrated with the vendor. Changing the vendor breaks the integrations. |
Characteristic: Technical lock-in increases with time. The longer you use a proprietary service, the more code you write against its API, the more data you store in its format, the harder it becomes to leave.
2.2 Contractual Lock-In
Contractual lock-in occurs when the user is legally or financially bound to the vendor.
Mechanisms:
| Mechanism | Example |
|---|---|
| Multi-year contracts | 3-year enterprise agreement with penalties for early termination. |
| Minimum spend commitments | $100K/year minimum. If usage drops, you pay anyway. |
| Bundled pricing | Discount for using multiple products from the same vendor. Leaving one product increases the price of others. |
| Perpetual license with maintenance | “Own” the software but pay 20% annually for updates. Stop paying and lose access to updates and support. |
| Audit clauses | Vendor can audit your usage and charge for overages. Disputes are expensive. |
Characteristic: Contractual lock-in is negotiated upfront. The user enters the contract knowingly but may underestimate the difficulty of exit. The vendor’s incentive is to make the contract seem reasonable at signing and punitive at departure.
2.3 Operational Lock-In
Operational lock-in occurs when the user’s team, processes, and knowledge are built around the vendor’s product.
Mechanisms:
| Mechanism | Example |
|---|---|
| Training investment | Team certified on vendor’s platform. Migration requires retraining. |
| Tooling integration | CI/CD pipelines, monitoring, alerting all configured for vendor’s platform. |
| Organizational knowledge | “Only three people understand how this system works, and they all left.” |
| Vendor-specific hires | Team built around a specific technology. Changing vendors changes hiring requirements. |
| Incident response procedures | Runbooks written for vendor’s platform. Migration requires rewriting all runbooks. |
Characteristic: Operational lock-in is the hardest to overcome. Technical lock-in can be solved with engineering. Contractual lock-in can be solved with money. Operational lock-in requires retraining, rehiring, and rebuilding institutional knowledge - a process measured in years.
3. The Lock-In Stack
Most vendors employ all three types of lock-in simultaneously, layered on top of each other:
Operational Lock-In (hardest to break)
│
Contractual Lock-In (expensive to break)
│
Technical Lock-In (time-consuming to break)
A user who wants to leave must:
- Rewrite integration code (technical)
- Pay contract termination fees (contractual)
- Retrain their team (operational)
The combined cost exceeds the cost of staying, even if the product has degraded. The vendor is now free to reduce quality, increase prices, or change terms. The user cannot respond.
block-beta
columns 1
block:O["Operational Lock-In"]
columns 1
O1["Hardest to break"]
O2["Retrain + rehire"]
end
block:C["Contractual Lock-In"]
columns 1
C1["Expensive to break"]
C2["Fees + penalties"]
end
block:T["Technical Lock-In"]
columns 1
T1["Time-consuming to break"]
T2["Rewrite integrations"]
end
T --> C --> O
4. The Lock-In Business Model
The lock-in business model follows a predictable lifecycle:
Phase 1: Adoption. Low prices. Generous free tier. Easy onboarding. Open APIs. “We want to earn your business.”
Phase 2: Entrenchment. Proprietary features. Platform-specific integrations. Data accumulation. “Look at everything you’ve built on our platform.”
Phase 3: Extraction. Price increases. Reduced free tier. API deprecation. Vendor-specific certification requirements. “Where else are you going to go?”
The vendor’s financial model depends on Phase 3. Phase 1 and Phase 2 are investments in lock-in, amortized over years of extraction.
block-beta
columns 3
block:A["Phase 1: Adoption"]
columns 1
A1["Low prices"]
A2["Free tier"]
A3["Easy onboarding"]
end
block:B["Phase 2: Entrenchment"]
columns 1
B1["Proprietary features"]
B2["Data accumulation"]
end
block:C["Phase 3: Extraction"]
columns 1
C1["Price increases"]
C2["API deprecation"]
end
A --> B --> C
5. Building Without Lock-In
The alternative is to build products that users stay with because they are better, not because they are trapped. This requires architectural decisions that remove lock-in mechanisms.
block-beta
columns 2
block:OPEN["Open Standards"]
columns 1
OP1["AMQP, Kafka, PostgreSQL"]
OP2["REST, OpenAPI, GraphQL"]
end
block:EXPORT["Exportability"]
columns 1
EX1["Documented, machine-readable"]
EX2["Complete data + context"]
end
block:SELF["Self-Hosting Parity"]
columns 1
SE1["Same codebase"]
SE2["Migrate without loss"]
end
block:NOPROP["No Proprietary Dependencies"]
columns 1
NP1["User code runs anywhere"]
NP2["Open protocols only"]
end
block:PRICE["Transparent Pricing"]
columns 1
PR1["Public prices"]
PR2["Advance notice of changes"]
end
block:NOCON["No Long-Term Contracts"]
columns 1
NC1["Monthly billing"]
NC2["Cancel anytime"]
end
Strategy 1: Open Standards
Use open protocols and formats wherever possible. If the user can replace your product with another that speaks the same protocol, you must compete on quality.
| Instead of | Use |
|---|---|
| Proprietary message queue | AMQP, Kafka protocol |
| Proprietary database wire protocol | PostgreSQL wire protocol |
| Proprietary API | REST with OpenAPI spec, GraphQL with published schema |
| Proprietary file format | JSON, CSV, SQLite, Parquet with documented schema |
Strategy 2: Exportability
The user must be able to extract all their data in a documented, machine-readable format without friction. Export is not a feature. It is a structural property.
Strategy 3: Self-Hosting Parity
The self-hosted version must be the same software as the managed version. Users who outgrow the managed service or require data sovereignty can migrate without data loss, feature loss, or workflow disruption.
Strategy 4: No Proprietary Dependencies in User Code
User code - workflows, scripts, integrations - should not depend on proprietary SDKs or APIs. If the user writes code against your platform, that code should run on any platform that implements the same open protocol.
Strategy 5: Transparent Pricing
Prices are public. No “contact us for enterprise pricing.” No negotiated discounts that penalize smaller users. No surprise fees. Price changes are announced with advance notice and apply to new customers first.
Strategy 6: No Long-Term Contracts
Monthly billing. Cancel anytime. No minimum spend. No termination fees. The user stays because they want to, not because they signed a contract.
6. Case Study: TELOSIS Brands
TELOSIS brands are designed to compete without lock-in.
Covenant:
- Data export: Complete ZIP archive with JSON, PDFs, and verification manifest.
- Self-hosting: Same codebase as managed version. Migration in both directions.
- Open format: Document schema is documented. Signature certificates follow published structure.
- No contracts: Monthly billing. Cancel anytime. Data export available after cancellation.
Foundry:
- Workflow definitions: Declarative, open format. Not proprietary DSL.
- Execution history: Exportable as SQLite database.
- Self-hosting: Managed and self-hosted are the same software.
- No proprietary SDK: REST API with OpenAPI specification.
Relay:
- Protocol: WebRTC (open standard). ICE (open standard). TURN (open standard).
- No proprietary signaling: Uses standard WebSocket with documented JSON protocol.
- Self-hosting: Deploy your own Relay instance.
In each case, the user can leave at any time without losing data, functionality, or continuity. The product must earn retention through quality because lock-in is not available as a fallback.
7. The Competitive Advantage of No Lock-In
A product without lock-in appears disadvantaged. Users can leave. Competitors with lock-in can extract more revenue from trapped customers.
This is a short-term view. Over decades:
- Users who have been burned by lock-in seek vendors who do not employ it.
- Enterprise procurement increasingly evaluates exit costs before signing.
- Regulators are increasingly scrutinizing lock-in (GDPR data portability, DMA interoperability).
- Developers - the decision-makers for technical products - hate lock-in and advocate against it internally.
The vendor without lock-in wins the long game. The vendor with lock-in wins the current quarter. TELOSIS is playing the long game.
8. How to Evaluate a Vendor for Lock-In
Before adopting a software product, ask:
- Can I export all my data in a documented, machine-readable format? If no, expect lock-in.
- Can I run the same software on my own infrastructure? If no, the vendor controls your access.
- Does the product use open protocols or proprietary ones? If proprietary, factor in the cost of rewriting integrations.
- What is the contract term? If longer than monthly, the vendor benefits from your inertia.
- What are the termination conditions? If penalties or minimum spend, the vendor is pricing in lock-in.
- Does the vendor have a history of price increases? If yes, they are in Phase 3 of the lock-in lifecycle.
- Are there known cases of users migrating away? If no one has successfully left, you will not be the first.
9. Conclusion
Lock-in is not inevitable. It is a choice.
The vendor chooses whether to invest in quality or in dependency. The user chooses whether to evaluate exit costs before signing. The industry chooses whether to reward vendors who compete on merit or vendors who trap their customers.
TELOSIS chooses quality. Our products are designed so that users can leave at any time without losing what they built. This is not a marketing position. It is an architectural commitment. It is embedded in the code, the data model, the API, and the business model.
We believe this is not just ethical. It is strategically correct. The vendors who will dominate the next fifty years are not the ones who trap their customers. They are the ones who earn their customers’ trust - every day, through the quality of what they build.
Lock-in is a shortcut. Trust is the long road. We are building for the long road.
References
- TELOSIS Research. Exportability as a Structural Property. TELOSIS-RP-2026-007, 2026.
- TELOSIS Research. Self-Hosting Is Not a Feature - It Is Infrastructure. TELOSIS-RP-2026-001, 2026.
- TELOSIS Research. The Economics of Self-Hosting. TELOSIS-RP-2026-009, 2026.
- European Union. Digital Markets Act. 2022.
Citation
TELOSIS Research. (2026). Vendor Lock-In: Structural Analysis and Alternatives. TELOSIS-RP-2026-010.