Apache APISIX vs Traefik

Choose Apache APISIX when you need a plugin-rich gateway with configuration in etcd or a file, and Traefik when you want routes discovered automatically from your orchestrator. The right answer depends on your plugin needs, Kubernetes setup and migration path.

On this page

Apache APISIX vs Traefik: when each one fits the decision

Choose Apache APISIX when the gateway is the policy point for many services and you need a broad plugin catalog, an explicit Admin API and configuration held in etcd. APISIX is Apache-2.0 licensed, ships more than 100 built-in plugins covering authentication, security, traffic control and observability, and its openid-connect plugin supports flows such as authorization code, client credentials and PKCE against identity providers like Keycloak, Okta and Microsoft Entra ID. Choose Traefik when the main job is routing traffic to containers or services that come and go, and you want routes generated automatically from Docker, Kubernetes or Consul. Traefik is MIT licensed, distributed as a single Go binary, and reloads its configuration without restarts.

The decision turns on four questions. First, which plugins must run at the edge: if you need JWT, OIDC, custom request transformation or per-consumer rate limits as first-class gateway features, check each one against the APISIX plugin list and the Traefik middleware reference before you commit. Second, which orchestrator you run: Traefik's Kubernetes Ingress, CRD and Gateway API providers are mature choices for cluster ingress, while APISIX on Kubernetes depends on its own Ingress Controller and configuration model. Third, whether you are leaving the retired NGINX Ingress Controller: Traefik documents support for many ingress-nginx annotations, which can reduce migration work, but you should test your specific annotations in a staging cluster. Fourth, whether paid add-ons are in scope: Traefik separates Traefik Proxy from Traefik Hub and Traefik Enterprise, so confirm exactly which features you need and which edition includes them.

Which platform fits which scenario

This table maps common scenarios to the platform that fits better and the condition that decides it. Read each row against your own environment, because the right answer usually depends on the Kubernetes setup, the identity model and how often services change. Items marked as a point to confirm should be checked with the vendor or in a proof of concept before you commit.

ScenarioBetter fitCondition that makes it so
Kubernetes cluster migrating off Ingress NGINXTraefikTraefik's Kubernetes Ingress NGINX provider supports many ingress-nginx annotations, so teams can move with minimal configuration changes. Confirm that your specific annotations are covered.
Team needing OIDC and custom plugins at the gatewayApache APISIXAPISIX's openid-connect plugin supports authorization code, client credentials, introspection and PKCE flows, and custom plugins can be written in Lua or through plugin runners in Java, Go and Python. Confirm the exact OIDC settings your identity provider requires.
Docker or Swarm estate with frequent service changesTraefikTraefik listens to Docker and Swarm mode and generates routes automatically, so route changes follow container changes without manual edits to a gateway configuration.
Regulated environment needing file-driven or air-gapped configurationApache APISIXAPISIX standalone mode reads conf/apisix.yaml or conf/apisix.json and hot-reloads changes without etcd. Confirm with the vendor how your change-control process will handle reloads and audit trails.
Teams wanting a central, API-driven control plane with a shared storeApache APISIXTraditional and decoupled modes keep configuration in etcd and expose an Admin API on port 9180. The etcd cluster then becomes an operational component you must back up and monitor.
Platform team wanting zero-touch routing from orchestratorsTraefikTraefik's providers for Kubernetes CRD, Gateway API, Consul, Nomad and ECS discover routes from the orchestrator, which suits platforms where services register themselves.
Team needing a broad built-in plugin catalog for auth, traffic and AI gateway functionsApache APISIXThe APISIX documentation describes more than 100 built-in plugins. Confirm that each plugin you need is available under Apache-2.0 in the version you plan to run.
Need for commercial support or enterprise add-onsDepends on vendor termsTraefik separates Traefik Proxy, Traefik Hub and Traefik Enterprise, and directs commercial requests to Traefik.io. APISIX commercial support comes through third parties such as API7.ai. Ask each vendor which features sit behind a paid tier.

How APISIX stores configuration while Traefik discovers it

Apache APISIX and Traefik both change routing without a restart, but they keep their routing state in different places. The cards below cover where each one stores or derives configuration, and what that means for upgrades, backups and recovery.

Traditional and decoupled modes use etcd

In traditional mode, APISIX runs the data plane and control plane together and uses etcd as its configuration center. Decoupled mode separates the two planes but both still share one etcd cluster. Client traffic arrives on port 9080 and the Admin API listens on port 9180 by default in traditional mode. Backups of routes and plugins therefore depend on the etcd snapshot process, and an etcd outage or quorum loss affects every node that reads from it. Confirm who owns the etcd cluster and how it is backed up.

Standalone mode reads a local file

In file-driven standalone mode, APISIX has no etcd. It reads conf/apisix.yaml or conf/apisix.json, checks the file for changes every second, and hot-reloads without a restart. The file itself becomes the source of truth, so it fits Git review and GitOps pipelines well. The trade-off is that each node holds its own copy, so teams must confirm how file changes reach every instance and how a bad file is rolled back.

Traefik derives routes from providers

Traefik has no equivalent configuration database. It listens to providers such as Kubernetes CRD, Kubernetes Ingress, Kubernetes Gateway API, Docker, Consul or file configuration, and generates routes from what those sources report. Recovery means restoring the provider objects, such as Kubernetes resources or Docker labels, rather than a gateway database. Confirm where Traefik's effective state lives in your setup, including any file or Kubernetes objects that define it.

Upgrade paths differ by state location

With APISIX, an upgrade must keep the etcd data and the schema compatible with the running version, so teams should rehearse upgrades against a copy of production configuration. With Traefik, an upgrade replaces the binary or image while route definitions come from providers that remain in place. Check each project's release notes for version-specific changes, and confirm that a rollback restores both the binary and the state it depends on.

Failure recovery and backup ownership

When a node fails in APISIX traditional mode, surviving nodes keep serving from the shared etcd state, so recovery centers on etcd and the Admin API. In standalone mode, recovery means restoring the file to every node. In Traefik, a restarted instance rebuilds its routes from providers, so recovery depends on the availability of those providers. Write down the recovery owner, the backup source and the test that proves a rebuilt gateway serves the same routes.

Capability comparison on supplied facts

This table sets Apache APISIX and Traefik against each other on the facts we could verify for licensing, configuration, deployment, extensibility, Kubernetes ingress, migration aid, observability and commercial add-ons. Read each row as a starting checklist: where a cell says to confirm, the answer depends on your own requirements and should be checked with the vendor before you decide.

CapabilityApache APISIXTraefik
LicenseApache-2.0, a top-level Apache Software Foundation projectMIT, open-source core (Traefik Proxy)
Configuration storageetcd in traditional and decoupled modes, or a YAML or JSON file and an API in standalone modeDiscovers routes from providers such as Docker, Kubernetes, Consul and Nomad, plus file configuration; no etcd requirement is stated in the supplied facts
Deployment modesTraditional, decoupled and standaloneSingle Go binary or official Docker image; provider-driven routing
Plugin count and extension languagesMore than 100 built-in plugins; custom plugins in Lua, or in Java, Go and Python through plugin runnersBuilt-in middleware catalog; confirm the full middleware count and custom extension options in the current Traefik documentation
WebAssembly statusSupported, but still experimental per the architecture documentationConfirm current WebAssembly support with Traefik before relying on it
Kubernetes ingress and Gateway APIIngress support is delivered through the separate APISIX Ingress Controller, currently 2.2.0 (August 18, 2026)Kubernetes CRD, Kubernetes Ingress and Kubernetes Gateway API providers are documented
Ingress NGINX migration aidNot covered in the supplied facts; confirm the migration path with the vendorIngress NGINX provider supports many ingress-nginx annotations to ease moves from the retired controller
Built-in metrics and access logsObservability plugins are part of the 100+ plugin set; confirm the metrics and log formats you needPrometheus and other metrics, JSON or CLF access logs, web UI and REST API
Authenticationopenid-connect plugin works with Keycloak, Auth0, Microsoft Entra ID, Google and Okta; authorization code, client credentials, introspection and PKCE flowsConfirm authentication middleware coverage in Traefik against your own requirements, since the supplied facts do not list it
Release cadenceVersion 3.19.0 released September 28, 2026; no release is marked long-term support on the downloads pageUsually three or four minor versions a year, each supported until the next release; v3.7.15 and v2.11.59 published October 15, 2026
Commercial add-onsAPI7 Enterprise, the commercial API lifecycle product from API7.ai built on APISIXTraefik Hub (Kubernetes-native API management) and Traefik Enterprise (API gateway), with commercial support through Traefik.io

Authentication and identity integration at the gateway

The APISIX openid-connect plugin is the component to evaluate first if your gateway must validate user or service identities against an external identity provider. The plugin is documented to work with Keycloak, Auth0, Microsoft Entra ID, Google and Okta, and to support the authorization code, client credentials, token introspection and PKCE flows. Those four flows cover browser-based user login, machine-to-machine access, opaque token validation and public clients such as single-page apps. Map each of your applications to one of these flows before you compare gateways, because the flow determines which token settings, redirect URIs and client registrations you must create in the provider.

Traefik's identity options are a different question. Its documentation and README describe routing, TLS, middleware and metrics, but the supplied material does not confirm a bundled OpenID Connect flow matching the APISIX plugin's list of providers and grants. Treat Traefik's authentication support as unconfirmed for your case until you check the middleware reference and its commercial documentation for the exact provider and flow you need. If the answer depends on a separate product such as Traefik Hub or Traefik Enterprise, record that dependency in the design, since it changes licensing and support.

Test both gateways against a real identity provider in a lab before committing. Stand up the provider you actually use, register a test client for each flow, and confirm token issuance, token introspection, refresh behavior and logout from a browser and from a service account. Record the exact claims your applications need and check that each gateway forwards them. Ask the provider's administrators to confirm the redirect URI, token lifetime and PKCE settings they will enforce. Keep the lab results with your design record, since they show which flows were verified rather than assumed.

What is free and what is paid in each platform

The APISIX project is released under the Apache License 2.0 (SPDX: Apache-2.0), and that license covers the gateway core along with its built-in plugins. The documentation describes more than 100 built-in plugins covering authentication, security, traffic control, observability and AI gateway functions. Running the project yourself carries no license fee for the software, but hosting, hardening and upgrading it fall to your team or to a partner you hire.

  • Apache-2.0 license: The project is a top-level Apache Software Foundation project, so you can run and modify it without paying a license fee for the software itself. Confirm the terms with your legal team before you redistribute modified builds.
  • Built-in plugins: The more than 100 plugins ship with the open-source distribution, including the openid-connect plugin that works with Keycloak, Auth0, Microsoft Entra ID, Google and Okta. Verify each plugin against the release you deploy.
  • Release line: APISIX 3.19.0 was released on September 28, 2026, and the downloads page does not mark any release as long-term support. Plan your upgrade cadence with that in mind.
  • Costs that remain: Infrastructure, etcd operation, staff time and any outside implementation work are yours to pay for, and they recur for as long as the gateway runs.

Check the current release notes and support expectations on the downloads page before you commit to a version.

What drives the running cost of each gateway

The largest infrastructure difference starts with where configuration lives. A traditional or decoupled Apache APISIX deployment depends on an etcd cluster, so you pay for etcd nodes, their storage and backups, and the people who monitor and restore them. Standalone mode removes etcd by loading conf/apisix.yaml or conf/apisix.json and hot-reloading changes, which lowers infrastructure cost but moves change control into files that someone must version, review and promote. Traefik has no separate configuration database in its documented setup. It reads orchestrator sources such as Kubernetes CRDs, Ingress or Gateway API objects, Docker labels or file configuration, and it ships as a single Go binary or an official Docker image. Its infrastructure cost is therefore mostly proxy replicas plus the platform it watches. Ask your platform team to price the etcd cluster separately in any APISIX design.

Staff cost follows the skills each project demands. APISIX runs on NGINX and LuaJIT, and Lua plugins execute inside worker processes, so operators who debug plugin behavior need that stack. Teams that write plugins in Java, Go or Python also run external plugin runners, which adds build and patch work. Traefik is written in Go and is driven mostly by orchestrator objects, which usually suits platform teams already fluent in Kubernetes manifests. Upgrade effort is the recurring cost that most often surprises buyers. Traefik's documented policy is three or four minor versions a year, each supported until the next release, so budget for a regular upgrade test cycle. For APISIX, the current release is 3.19.0, released September 28, 2026, and the APISIX downloads page does not mark any release as long-term support. Ask in writing which line you will be supported on and for how long before you standardize on it.

Paid support and add-ons are the cost most affected by scope. Both projects are open source, but commercial layers exist. Traefik's documentation separates Traefik Proxy from Traefik Hub, a Kubernetes-native API management product, and from Traefik Enterprise, an API gateway, and directs commercial support requests to Traefik.io. API7 Enterprise is a commercial product from API7.ai built on APISIX. DeployOpen does not publish a price list. Its engagements are fixed-scope, so a quote follows from written scope. Ask each option for the same breakdown: who runs etcd backups or the Traefik configuration repository, how many upgrade cycles per year are covered, which test environments are included, what support hours and response terms apply, and which add-on features and license units are required. Equal breakdowns let you compare the two options on the same terms.

Moving from Ingress NGINX or between these gateways

This sequence moves traffic from an existing ingress setup, or from one gateway to the other, without a big-bang cutover. It ends with the old controller retired and a written record of which annotations and plugins were carried over, rebuilt, or dropped.

  1. Inventory every ingress-nginx annotation and snippet

    The platform team exports all Ingress objects and lists each annotation, along with any custom snippets, ConfigMap overrides and admission webhooks in use. Owners of each application confirm which routes are business-critical. The output is a spreadsheet with one row per route and one column per annotation or snippet, marked as standard, custom, or unknown. Because Traefik's documentation describes support for many ingress-nginx annotations, you should check each annotation name against Traefik's Kubernetes Ingress NGINX provider page rather than assume coverage. Annotations you cannot match are the first candidates for rebuilding.

  2. Map each annotation to a target configuration

    For every row in the inventory, the architect records the equivalent in the target: a supported ingress-nginx annotation handled by Traefik, a native Traefik middleware or IngressRoute, or an APISIX plugin and route if APISIX is the destination. Items with no supported equivalent get a rebuild task with an owner. Snippets that inject raw NGINX directives generally have no direct translation and need a design decision on whether the behavior is still needed. The output is a signed mapping document that security and application owners review, which becomes the acceptance list for later steps.

  3. Decide where configuration will live

    The team chooses the configuration store before any routes move. Traefik reads its configuration from the Kubernetes providers, file configuration or other providers it is set to watch, so the decision centers on which provider is the source of truth and who edits it. For APISIX, the team chooses between traditional or decoupled mode with etcd, or standalone mode with a YAML or JSON file or the API, and confirms the chosen mode against the deployment modes documentation. The output is a short decision record covering the store, backup owner, and change process, approved before any manifests are written.

  4. Run both controllers in parallel on a non-production cluster

    The platform team installs the target controller next to the existing ingress-nginx controller on a non-production cluster and replays the mapped routes against representative test applications. Each route is checked for matching host and path handling, TLS certificate behavior, authentication, rate limits and logging. The QA or security lead signs off on test results per route. The output is a pass or fail record for every row in the mapping document, with failures sent back to the rebuild list.

  5. Shift production traffic route by route

    The team moves production routes in small groups, starting with low-risk internal services, by changing the ingress class or DNS record for each group. Operators watch error rates, latency and access logs on both controllers during each change, and keep the previous configuration ready to restore. Traefik's support for mixed providers and APISIX's hot-reload behavior both help, but the change window and rollback steps should be written down before the first move. The output is a change log showing each route, the date it moved, and the outcome.

  6. Confirm nothing depends on the old controller

    Before retirement, the team searches for any remaining Ingress objects, custom annotations or snippets pointing to the old class, and checks dashboards and alerts that still reference ingress-nginx metrics. Application owners confirm their routes in writing. The output is an empty inventory for the old class and a list of updated alerts, so no traffic depends on the old controller.

  7. Retire the old controller and record what changed

    The team removes the ingress-nginx deployment, its ConfigMaps and its IngressClass, then archives the mapping document, test results and change log with the platform's configuration repository. Items that did not transfer are listed explicitly: APISIX plugin configuration and etcd data do not move between gateways, and rebuilt snippet logic must be documented as new code. Teams should confirm annotation coverage against their own manifests and against the current provider documentation before relying on it. The output is a closed migration record that auditors and future operators can follow.

Where implementation projects usually run long

On an APISIX project, the schedule usually slips in three places: plugin selection, etcd sizing and backup, and the choice of deployment mode. APISIX ships more than 100 built-in plugins, so the first decision is which authentication, traffic control and observability plugins the gateway must run, and which of them your security team will accept on the data path. The second is the configuration center. In traditional and decoupled modes, etcd holds the routes, upstreams and plugin settings, so the team needs to size the cluster, test restore from backup and agree who owns those backups. The third is the choice between traditional, decoupled and standalone modes, which changes the Admin API port layout (9080 for client traffic and 9180 for the Admin API in traditional mode), the failure domains and the GitOps workflow. Ask the implementation partner to write down the mode decision and its reasons before any cluster is built.

On a Traefik project, the effort tends to move to provider configuration and to the conventions that define routes. Traefik discovers routes from providers such as Kubernetes CRD, Kubernetes Ingress, Kubernetes Gateway API, Docker and file configuration, so the team must decide which provider is authoritative for each cluster and avoid two sources defining the same route. Label or CRD conventions then need to be agreed and enforced, because automatically generated routes are only as predictable as the metadata behind them. If you are moving off the retired NGINX Ingress Controller, reconcile the ingress-nginx annotations you actually use against Traefik's Ingress NGINX provider support, and test each one rather than assuming a minimal change set. Confirm which Traefik release line your support plan covers before starting, since release support runs only until the next version ships.

DeployOpen plans and implements both kinds of work inside your own cloud accounts, data centers or air-gapped networks, and works to a fixed scope, deliverables and timeline agreed in writing before work starts. In the scope document, ask for the plugin or provider inventory, the etcd or provider design, the migration test plan for each legacy annotation or route, and the named owner for each backup and upgrade task. Those items are where a fixed scope either holds or changes, so settle them in writing before the quote is final.

Questions buyers ask before choosing a gateway

Can our team run Apache APISIX or Traefik without outside help?

Often yes for a small, well-scoped deployment, but the answer depends on the platform skills you already have. APISIX asks you to operate etcd as the configuration store in traditional and decoupled modes, and to manage the Admin API on port 9180 and the client listener on port 9080. Traefik is a single Go binary that reads routes from Docker, Kubernetes or file providers, so its day-one footprint is usually smaller. Confirm whether your staff already run etcd and Kubernetes, and whether anyone owns gateway configuration as code. A short internal pilot on your own clusters will show more than any comparison table.

What does the work need from our platform and security staff?

Plan for platform staff to own deployment, scaling, certificates and upgrades, and for security staff to own authentication policy, TLS settings and audit logging. In APISIX, the openid-connect plugin covers authorization code, client credentials, token introspection and PKCE flows against providers such as Keycloak, Okta or Microsoft Entra ID, so security review centers on plugin configuration and secret handling. In Traefik, Let's Encrypt and middleware such as authentication and rate limits are configured per route, so review focuses on labels, CRDs or file config. Ask each side to name the owners before work starts.

How long does a migration take, and what drives that?

Duration depends on how many routes, plugins and authentication policies you carry over, and on how much of your traffic path you can cut over in stages. A team moving from the retired NGINX Ingress Controller may find Traefik's Ingress NGINX provider reduces annotation rewrites, since Traefik documents support for many ingress-nginx annotations. APISIX migrations usually involve translating policies into its plugin model and etcd or file-based configuration. No migration duration is supplied for either product, so ask each vendor or partner for a timeline built from an inventory of your current routes and policies.

Do we need commercial add-ons for OIDC or Kubernetes operation?

For APISIX, the openid-connect plugin is part of the open-source gateway under Apache-2.0, so OIDC does not require a separate commercial license in the gateway itself. For Traefik, the open-source proxy is MIT-licensed and includes Kubernetes providers, while the documentation separates Traefik Proxy from Traefik Hub and Traefik Enterprise. Confirm which Traefik features your authentication and API management requirements need, and whether they are in Traefik Proxy or a commercial product. Get the answer in writing from the vendor, since product boundaries can change.

How do upgrades differ given each release cadence?

Plan upgrades around each project's support model, not only its latest version. Traefik usually ships three or four minor versions a year, and each version is supported until the next release, so you must upgrade on a steady rhythm. APISIX 3.19.0 was released on September 28, 2026, and the APISIX downloads page does not mark any release as long-term support, so you should set your own pinning and testing policy. Ask each side how they will test minor upgrades, roll back configuration, and handle plugin or middleware changes before you commit.

What should we ask for in a quote for this work?

A useful quote lists the scope in writing: which environments, how many routes and plugins or middleware, which identity provider and Kubernetes clusters, how configuration is stored and tested, and what documentation and handover you receive. DeployOpen works from fixed scope agreed in writing before work starts, and ongoing support or upgrades are available as retainers. Ask for deliverables, a named timeline, what is one-time and what recurs, and which third-party licenses or subscriptions are excluded. DeployOpen does not publish a price list, so the quote follows from that scope.

Which gateway fits better when Kubernetes ingress is the main use?

Traefik is built to discover routes from Kubernetes Ingress, its CRDs and the Kubernetes Gateway API, which suits teams that want routes to follow their cluster objects. APISIX also runs on Kubernetes through its Ingress Controller, which had release 2.2.0 on August 18, 2026, and it adds a deeper plugin catalog with more than 100 built-in plugins. Choose Traefik when simplicity and automatic discovery matter most, and APISIX when you need plugin depth or an etcd-backed control plane. Test both against your actual ingress rules before deciding.

How DeployOpen helps you choose and implement either gateway

DeployOpen is a Chainscore Labs company that plans, implements, customizes, integrates, hardens, documents and supports self-hosted open-source platforms inside your own cloud accounts, data centers or air-gapped networks. For Apache APISIX vs Traefik, we start with a written scope that fits the gateway you choose, then carry it through build, handover and ongoing support.

How we scope

  • Written scope covers which traffic, identity providers and Kubernetes ingress paths the gateway must handle.
  • We confirm whether configuration lives in etcd, a file or a Kubernetes provider before any build work starts.
  • Engagements are fixed-scope, with deliverables and timelines agreed in writing before work begins.

How we build

  • We install and configure the chosen gateway in your environment, including authentication flows and routing rules.
  • For APISIX we set up the deployment mode you select; for Traefik we wire providers, certificates and metrics.
  • Security testing of the configured gateway and its APIs can be included in the agreed scope.

How we hand over

  • Handover includes configuration documentation, runbooks for routine changes and upgrade procedures for your team.
  • If you are migrating from Ingress NGINX, we document which annotations and manifests changed and how they were validated.
  • Compliance readiness evidence, such as configuration records and access logs, is prepared for your independent assessor.

How we support

  • Ongoing support, version upgrades and continuous testing are available as retainers after handover.
  • Retainers can track release windows for your chosen gateway so upgrades are planned rather than reactive.
  • Ask any quote to name who maintains plugin or provider changes after go-live and how they are tested.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.