Every API call feels like a simple transaction - until enough of them accumulate that your fine-tuning data, evaluation harnesses, and tool schemas are all shaped around one vendor, and switching stops being a routing change.

That's data gravity: the same force that made pulling data out of AWS S3 expensive long before AI existed, now operating one layer up the LLM hosting stack. It doesn't require a bad contract or a malicious vendor. It's compounding integration debt - every fine-tuned checkpoint, cached embedding, and evaluation harness tuned to one provider's output format makes the next one cheaper to add and the whole pile more expensive to move.

The mechanism has four stages, and none of them announce themselves. Most teams don't decide to become dependent - they drift from Exploration into Integration, then Optimization, until Dependency feels less like a choice and more like the ground truth of their architecture. Recognizing which stage you're in, and what it costs to reverse, is the point of this article.

The Mechanism: Four Stages of Lock-In

graph LR