API gateway vendor lock-in is one of those risks that’s easy to dismiss early and painful to confront later. You pick a gateway that solves your immediate problem — maybe it’s the default option in your cloud provider, maybe a colleague recommended it — and within a year your team has hundreds of routes configured in a proprietary format that only that platform understands. Migrating means rewriting everything.
This isn’t hypothetical. Teams using AWS API Gateway discover their VTL mapping templates don’t translate to any other platform. Organizations on Azure API Management realize their XML-based policy definitions with C# expressions are Azure-specific. Kong users find that their custom Lua plugins need complete rewrites to work anywhere else. The pattern is consistent: proprietary abstractions create invisible walls.
This guide breaks down how API gateway vendor lock-in happens, gives you a practical framework for evaluating portability risk, and explains how standards-based API management can keep your options open.
What Is API Gateway Vendor Lock-in?
Vendor lock-in in the API gateway context means your gateway’s configuration, policies, and operational workflows are so deeply tied to a specific platform that switching to an alternative requires significant time, money, and engineering effort. It’s not just about the gateway software itself — it’s about the entire ecosystem of tooling, knowledge, and processes that accumulate around a proprietary platform.
Lock-in manifests in several ways:
- Configuration formats that only one platform can interpret
- Policy languages that aren’t transferable (VTL, Lua, C#/XML policy definitions)
- Infrastructure dependencies that tie you to a single cloud provider
- Operational workflows built around a vendor-specific dashboard or CLI
- Knowledge silos where your team’s expertise is platform-specific rather than transferable
The cost of lock-in isn’t always obvious upfront. It shows up when you need to adopt a multi-cloud strategy, when your provider raises prices, when a critical feature is missing, or when your organization’s compliance requirements change and your current gateway can’t adapt.
The Three Types of Gateway Lock-in
Not all lock-in is created equal. Understanding the different categories helps you identify where your greatest risks lie and where to focus your mitigation efforts.
Cloud-Provider Lock-in
Cloud-native gateways like AWS API Gateway and Azure API Management are designed to integrate tightly with their parent cloud. AWS API Gateway uses IAM for authorization, Lambda for custom logic, and VTL for request/response transformations. Azure API Management uses Microsoft Entra ID, Azure Functions, and XML-based policy definitions with embedded C# expressions.
This integration is convenient when you’re already committed to a single cloud. But it means your API gateway is inseparable from the rest of your cloud infrastructure. If you decide to go multi-cloud — or if your organization acquires a company running on a different provider — your gateway configuration doesn’t come with you.
The proprietary tooling compounds the problem. AWS VTL templates, for example, have limited library support and no logging capability, along with a minimal testing ecosystem. You’re investing in skills that only apply to one platform.
Platform Lock-in
Open-source and third-party gateways like Kong and Tyk avoid cloud-provider lock-in but introduce their own form of platform lock-in through proprietary plugin systems and configuration formats.
Kong’s plugin ecosystem relies on Lua and a custom PDK (Plugin Development Kit). Tyk uses a Go-based middleware system with its own API definitions. Apigee has its own policy framework with XML-based proxy configurations. In each case, the configuration and customization you build is specific to that platform.
Even when the gateway itself is open source, the investment in plugins, custom middleware, and operational tooling creates switching costs. You might not be paying for a proprietary license, but you’re still locked into a proprietary architecture.
Data and Configuration Lock-in
The third form of lock-in is subtler: your API definitions, analytics data, developer portal content, and operational history are stored in a format or system that’s difficult to export.
Some gateways store configuration in internal databases accessible only through their own APIs. Others use proprietary serialization formats that don’t map cleanly to standard specifications. When your gateway’s configuration can’t be expressed as an open-standard document — like an OpenAPI specification — you’re locked in at the data level, even if the rest of the stack is portable.
How Lock-in Happens: Real-World Patterns
Lock-in rarely results from a single decision. It accumulates through a series of reasonable choices that each deepen your dependency on a particular platform.
The Convenience Trap
Your team picks AWS API Gateway because you’re already on AWS. The initial setup is fast — IAM handles auth, Lambda handles custom logic, and CloudWatch handles logging. Within weeks, you have VTL templates transforming request payloads and API Gateway authorizers calling Lambda functions that check Cognito tokens.
Every component is AWS-specific. No single piece is hard to replicate elsewhere, but replicating all of them simultaneously means rebuilding your entire API layer.
The Plugin Creep
You start with Kong and a few community plugins. Rate limiting, key auth, CORS — straightforward stuff. Then you need custom logic: a plugin that validates request bodies against your internal schema, another that enriches requests with data from a sidecar service, a third that formats error responses for your mobile app.
Each custom Lua plugin represents weeks of development and testing. After two years, you have fifteen custom plugins that your team maintains. Migrating means rewriting all of them in whatever language the new gateway supports.
The Dashboard Dependency
Your team manages everything through a vendor’s web dashboard. Routes, policies, rate limits, API keys — it’s all configured through clicks. There’s no export button for the complete configuration. There’s no Git repository backing the dashboard state. The configuration exists only inside the vendor’s system.
When you want to move, you discover that the vendor’s API exposes only a subset of the configuration. Some settings are dashboard-only. Recreating your setup means manually clicking through a different vendor’s dashboard — a tedious, error-prone process.
Evaluating Lock-in Risk: A Decision Framework
Before choosing an API gateway — or evaluating your current one — run through this portability checklist. Each question targets a specific dimension of lock-in.
Configuration Portability
- Is the configuration format based on an open standard? OpenAPI, for instance, is an industry standard that multiple tools understand. Proprietary YAML schemas or internal database formats are not portable.
- Can you export your full gateway configuration to a file? If the only way to access your configuration is through a vendor-specific API or dashboard, portability is limited.
- Does the configuration separate gateway logic from cloud-specific infrastructure? Your routing rules and policies should be expressible independently of where they’re deployed.
Policy and Logic Portability
- Are policies written in a general-purpose programming language? TypeScript, JavaScript, Go, and Python are transferable skills. VTL, Lua PDK, and C#/XML policy definitions are platform-specific.
- Can custom logic run outside the gateway for testing? If your request-transformation logic can only execute inside the gateway’s runtime, it’s tightly coupled to that platform.
- Do built-in policies use standard protocols? OAuth 2.0, JWT validation, and OpenID Connect are standards. Proprietary auth mechanisms aren’t.
Infrastructure Portability
- Does the gateway run on multiple cloud providers? A gateway that only deploys to AWS is an AWS dependency, regardless of what it calls itself.
- Can you change deployment models without rewriting configuration? Moving from managed to self-hosted (or vice versa) shouldn’t require changes to your routes and policies.
- Is the gateway’s operational tooling cloud-agnostic? If monitoring, logging, and alerting require a specific cloud’s services, you’re introducing infrastructure lock-in through the back door.
Organizational Portability
- Are the skills your team is building transferable? Learning TypeScript or OpenAPI is an investment that pays off regardless of your gateway choice. Learning VTL or a proprietary policy DSL only helps you on that one platform.
- Is your CI/CD pipeline gateway-agnostic? If your deployment process uses standard Git-based workflows, it’s more portable than one that depends on a vendor-specific CLI or deployment mechanism.
Standards-Based API Management as the Antidote
The most effective way to prevent API gateway vendor lock-in is to build on open standards rather than proprietary abstractions. Here’s what that looks like in practice.
OpenAPI as Your Configuration Format
When your API gateway uses an OpenAPI specification as its native configuration, your API definition is inherently portable. OpenAPI is an industry-standard format understood by hundreds of tools — documentation generators, testing frameworks, client SDK generators, and other API gateways.
This is fundamentally different from gateways that import OpenAPI but convert it to an internal format. In an OpenAPI-first gateway, the spec is the configuration. There’s no drift between your documentation and your gateway behavior, and there’s no proprietary format trapping your definitions.
Standard Programming Languages for Policies
Custom gateway logic written in TypeScript or JavaScript is portable by definition. Your team’s knowledge transfers to any platform that supports web-standard APIs. The policy code itself can be tested independently, reviewed in standard code editors, and understood by any developer — not just gateway specialists.
Compare this with VTL templates that require specialized AWS knowledge, Lua plugins that need Kong-specific PDK expertise, or C# expressions embedded in XML policy definitions that only Azure API Management interprets.
GitOps for Configuration Management
When your gateway configuration lives in a Git repository — not in a vendor’s proprietary database — you control your own data. Every change is versioned, reviewable, and exportable. If you need to switch gateways, your configuration is right there in your repo, ready to be adapted.
GitOps also decouples your deployment workflow from the vendor’s tooling. You can use any CI/CD system that integrates with Git — GitHub Actions, GitLab CI, Bitbucket Pipelines — rather than depending on a vendor-specific deployment mechanism.
Standard Auth and Security Protocols
Building your API security on standards like OAuth 2.0, OpenID Connect, and JWT validation means your security architecture isn’t tied to a specific gateway. These protocols work the same way regardless of which gateway enforces them.
When your gateway uses IAM-specific authorization or a proprietary API key system, migrating means rebuilding your security layer. When it uses JWT validation with standard claims, you can swap the gateway without touching your identity provider.
Zuplo’s Approach: Cloud-Agnostic, Standards-First
Zuplo is built around the principles outlined above — not as a retroactive marketing positioning, but as foundational architectural decisions.
OpenAPI-Native Configuration
Zuplo uses your
OpenAPI specification as its native configuration format.
Your routes are defined in a routes.oas.json file that’s a valid OpenAPI 3.1
document. This means your API definition is always exportable, always
standard-compliant, and always usable with other OpenAPI-compatible tools.
You’re not learning a proprietary configuration language. You’re writing OpenAPI — a skill that’s valuable regardless of which gateway you use tomorrow.
TypeScript Policies on Web Standards
Custom policies and handlers in Zuplo are
written in TypeScript
using standard web APIs — fetch, Request, Response, and Web Crypto. This
is the same programming model used across modern web platforms. Your team’s
investment in TypeScript skills is transferable, and your custom logic can be
tested with standard testing frameworks.
There’s no proprietary DSL to learn. No VTL. No Lua PDK. No vendor-specific policy definitions. Just TypeScript and standard HTTP APIs.
Deploy Anywhere: Three Hosting Models
Zuplo offers three deployment models that all use the same runtime, configuration, and APIs:
- Managed Edge — Serverless deployment across 300+ data centers worldwide, with no infrastructure to manage.
- Managed Dedicated — Zuplo operates your gateway in isolated infrastructure on your chosen cloud provider (AWS, Azure, GCP, Akamai, and others).
- Self-Hosted — Run Zuplo on your own Kubernetes infrastructure in any cloud or private data center.
The critical point: your configuration and custom code are portable across all three models — the same runtime powers each deployment option. If you start on managed edge and later need to move to self-hosted for compliance reasons, you don’t rewrite anything. This is infrastructure portability in practice.
GitOps From Day One
Every Zuplo project is backed by a Git repository. Your routes, policies, custom code, and environment configuration all live in source control. Zuplo supports GitHub, GitLab, Bitbucket, and Azure DevOps. With GitHub, pushing to your main branch triggers automatic global deployment within seconds. Other providers integrate through CI/CD pipelines using the Zuplo CLI.
This means you always have a complete, exportable copy of your gateway configuration. It’s not locked in a vendor’s database. It’s in your Git repo, under your control.
Multi-Cloud Backend Routing
Zuplo’s multi-cloud capabilities let you route API traffic to backends across any cloud provider from a single gateway. You can direct requests to AWS for one service, Azure for another, and an on-premises system for a third — all from the same unified configuration. This means your gateway itself doesn’t force a cloud choice on the rest of your architecture.
Migration Paths: From Locked-in to Portable
If you’re currently locked into a gateway and want to move toward a more portable approach, here are the high-level strategies.
From Cloud-Native Gateways (AWS, Azure)
The biggest challenge is untangling cloud-specific integrations. Start by inventorying your VTL templates (AWS) or policy expressions (Azure) and mapping them to equivalent TypeScript logic. Replace cloud-specific auth with standard JWT/OAuth 2.0 flows. Then migrate routes incrementally using traffic splitting.
Zuplo’s migration guide covers the specifics for AWS API Gateway, Azure API Management, Apigee, and Kong, including concept mapping and step-by-step instructions.
From Self-Hosted Gateways (Kong, Tyk)
The primary lock-in here is custom plugins and middleware. Audit your custom Lua (Kong) or Go (Tyk) plugins and rewrite the most critical ones as TypeScript policies. You’ll likely find that many custom plugins replicate functionality that Zuplo provides out of the box — rate limiting, authentication, request validation — eliminating the need for custom code entirely.
General Migration Strategy
Regardless of your starting point, the pattern is similar:
- Export your OpenAPI definitions from your current gateway
- Import them into the new gateway and verify route coverage
- Map proprietary policies to standard equivalents
- Run both gateways in parallel during a transition period
- Shift traffic incrementally using DNS or load balancer rules
- Decommission the old gateway once traffic is fully migrated
For a deeper look at the managed vs. self-hosted tradeoff, see our deployment model comparison. And for more on multi-cloud gateway architecture, see deploying API gateways in multicloud environments.
Conclusion
API gateway vendor lock-in is a technical debt that compounds over time. Every proprietary template, every platform-specific plugin, every configuration trapped in a vendor’s database makes it harder and more expensive to change direction when your requirements evolve.
The antidote is straightforward: choose tools built on open standards. An OpenAPI-native configuration format means your API definitions are always portable. TypeScript policies mean your custom logic is written in a general-purpose language. GitOps means your configuration is under your control, not locked in a vendor’s system. And flexible deployment models mean you’re not tied to a single cloud provider’s infrastructure.
You don’t have to accept lock-in as the price of using an API gateway. You just have to choose one that was built to avoid it.
Start building with Zuplo and see how standards-based API management keeps your options open. Already locked into another gateway? Check out the migration guide for step-by-step instructions on moving from AWS API Gateway, Azure API Management, Kong, or Apigee.