Migrate from WSO2 API Manager gateway to Apache APISIX

A planned move from the WSO2 API Manager gateway to Apache APISIX, group by group, with the lifecycle and portal functions that need a new home called out before work starts.

On this page

Migrate from WSO2 API Manager gateway to APISIX: what the move involves

The gateway moves to Apache APISIX, but the WSO2 API Manager Publisher, Developer Portal and subscription lifecycle do not, so you need a separate home for those functions before you retire the WSO2 deployment. In practice, the gateway layer covers request routing, mediation, OAuth token validation and throttling. APISIX can take over routing and token validation through its openid-connect plugin, and it can enforce request limits through limit-count. The API catalog, API definitions, publishing workflow, developer onboarding, application keys and subscription tiers stay outside the gateway and need a decision on what replaces them. Some teams keep the WSO2 control plane running for lifecycle work while APISIX serves traffic, and others move that work into a declarative workflow kept in Git, using a tool such as the ADC (API Declarative CLI) that works with APISIX Admin APIs.

Effort depends mostly on three things: how many APIs and environments you run, how complex your throttling and subscription policies are, and how many custom extensions WSO2 carries. WSO2 API Manager supports custom authenticators, policies and workflows, so any Java mediation, custom throttling logic or bespoke workflow you wrote has to be ported to an APISIX plugin, a plugin runner, or retired in favor of a different control. Each API group should be inventoried for its tier, scopes, rate limits and consumers before any route is written. Ask any partner to size the work from a written inventory of these items, not from a count of APIs alone.

Confirm the WSO2 version and deployment model you run, since the gateway you export from depends on it. WSO2 API Manager 4.7.0 is the current release noted in its repository, and the project requires JDK 21 to build. Also confirm whether you have a commercial WSO2 subscription, because support, updates and vulnerability monitoring end with that agreement. Plan a parallel run where WSO2 and APISIX both serve the same API group behind a traffic split, and keep a tested path back to WSO2 until the group has run cleanly for an agreed period. Document which team owns each function after cutover, because an API that loses its portal listing or subscription check is a business incident even when the gateway works.

Which WSO2 gateway capabilities map cleanly to APISIX and which do not

This table compares the WSO2 API Manager functions you run today with their closest APISIX equivalent, and flags the lifecycle and portal functions that APISIX does not replace. Read the rows marked as gaps first, because they decide which systems you keep, replace or rebuild before any API moves. Rows marked as mapping still need a test against your own policies and token formats.

CapabilityWSO2 API ManagerApache APISIXMigration note
Request routing and mediationGateway routes and mediation sequences applied to API resourcesRoutes, upstreams and plugins applied per route or serviceMapping is direct for routing. Custom mediation logic must be rewritten as plugins or plugin runner code.
OAuth2 and JWT validationGateway validates tokens against the key manager configured for each APIopenid-connect plugin validates through introspection by default, or locally with public_key or use_jwksChoose local JWT verification where your tokens and key rotation allow it, and test expired and revoked token handling.
Throttling tiersTiers attached to applications, subscriptions and resources in the traffic managerlimit-count keyed per route, consumer or group, with local or shared Redis countersTiers become consumer or group limits that you maintain in configuration. Confirm how each tier's quota and window will be expressed.
Shared throttling counters across gateway nodesTraffic manager coordinates counts across gateway nodeslimit-count shares counters through redis, redis-cluster or redis-sentinelLocal memory counters do not coordinate across nodes. Plan a shared Redis backend and test rejected requests, which return 503 by default.
Custom authenticators and policiesExtended with Java-based custom authenticators, policies and workflowsLua plugins, or plugin runners for Java, Go and Python, plus WebAssemblyEach custom component needs a rewrite and its own tests. Workflow logic has no direct APISIX equivalent.
API PublisherWeb interface for designing, publishing and versioning APIsNot applicableNot replaced by the gateway. Keep the current Publisher during transition or select a separate catalog or GitOps flow.
Developer PortalWeb interface for discovery, documentation and self-service accessNot applicableNot replaced by APISIX. Plan a separate portal or documentation site and confirm which consumers depend on it.
Subscriptions and application onboardingApplications subscribe to APIs and receive keys through the control planeNot applicableRequires a replacement for subscription and key issuance. Consumer records in APISIX can hold keys, but the approval flow must be built.
MonetizationMonetization module, which WSO2 does not publish under Apache-2.0Not applicableNot part of the open-source APISIX path. Ask whether any billing depends on it and plan a separate metering design.
Workflows and approvalsBuilt-in approval workflows for API lifecycle and subscriptionsNot applicableNot provided by APISIX. Use your ticketing or approval system and drive changes through ADC or the Admin API.

Which lifecycle and portal functions need another home

APISIX is a gateway, not a full API lifecycle manager, so the WSO2 API Manager functions that sit above the gateway need a separate decision before any route is moved. The WSO2 Publisher, the Developer Portal, application subscriptions and the approval workflows that your team may have customized are control plane features. The WSO2 repository describes these as separate from the gateway's routing, mediation and security role, and APISIX does not provide equivalent API design, publishing, self-service subscription or governance screens out of the box. For each function, decide whether it will be retained in WSO2 (for example, by keeping the control plane running while APISIX handles traffic), replaced with another tool, or dropped in favor of a documented manual process. Write that decision down per function, with the owner who will run it after cutover.

One vendor-described option is API7 Enterprise, sold by API7.ai, which the vendor describes as a full API lifecycle management product based on Apache APISIX and deployable on bare metal, virtual machines, Kubernetes and cloud. The vendor does not publish prices on its page, so you will need a written quote that covers the license terms, support, the components included and what is needed to run it in your environment. Treat it as one candidate to evaluate, not a given. Confirm with the vendor, in writing, which Publisher, portal, subscription and approval features it covers, how they map to your current WSO2 workflows, and whether they are included or licensed separately. The same applies to any open-source or in-house alternative you consider.

Before scoping, ask each candidate for a written statement that names every WSO2 function in your inventory and its replacement, retention or retirement plan. Include who approves API publication, how developers obtain and rotate credentials, where subscription records are stored, and how audit history is kept for each API. A gap found at this stage changes the migration plan and the budget, so an unresolved function should block the scope agreement rather than being carried into the cutover.

Documented tools and APIs for moving configuration

APISIX gives you three documented ways to load configuration: the Admin API, standalone files and the ADC command-line tool. Each suits a different stage of the migration, from exporting WSO2 definitions to syncing reviewed routes into a running gateway. None of them is a confirmed one-step importer from WSO2, so the export and review work stays with your team or your partner.

Admin API for routes and consumers

The Admin API is how a running APISIX instance receives routes, upstreams, consumers and plugin settings in traditional and decoupled modes. It listens on port 9180 in traditional mode, so it should be reachable only from your automation network. Check which WSO2 resources map to routes, consumers and plugin configuration before writing any API calls, and confirm the request format against the APISIX version you deploy.

Standalone mode with apisix.yaml

Standalone mode reads configuration from conf/apisix.yaml or conf/apisix.json and needs no etcd cluster. APISIX checks the file for changes every second and hot-reloads it without a restart. This suits a group of APIs you want to keep in version control and review as one file. Confirm that your team can operate without the dynamic Admin API before choosing it for production.

ADC read-only checks: ping and dump

ADC (API Declarative CLI) is an Apache-2.0 tool published by API7. Its ping command confirms that the tool can reach the gateway Admin API, and dump exports the current gateway state so you can compare it with the WSO2 inventory. Use the dump as a baseline before any change, and record which gateway version and deployment mode produced it.

ADC change control: diff, lint and sync

The diff command shows the gap between your declared configuration and the live gateway, and lint checks the declared files before anything is applied. Only sync changes the gateway, so it should follow an approved diff in your change process. Ask your team to confirm how ADC handles plugin settings that exist in the gateway but not in your files, because a sync can remove them.

ADC convert openapi for specifications

The convert openapi command turns an OpenAPI description into ADC configuration. It helps when your WSO2 APIs already have OpenAPI definitions, which WSO2 supports alongside GraphQL and AsyncAPI. Treat the output as a draft: WSO2 policies, subscription tiers and OAuth settings do not travel through a specification, so each one still needs a manual mapping and review.

Manual export and review from WSO2

No documented one-step importer from WSO2 API Manager to APISIX is confirmed in the supplied sources. Your team should export API definitions, applications, subscriptions and throttling policies from WSO2, then review each one by hand against the APISIX configuration. Budget this review as the core of the migration effort, and ask any partner to show how each WSO2 policy will be recreated, tested and signed off.

How the group-by-group migration runs with a parallel run and cutover

The sequence moves WSO2 API groups onto APISIX one at a time, keeps the old gateway available as a fallback at every stage, and ends with decommissioning only after a rollback has been rehearsed.

  1. Inventory APIs, subscriptions and policies

    Export the API definitions, subscription tiers, application keys, throttling policies and custom authenticators or mediation sequences from WSO2 API Manager, and record which gateway serves each API. Your team and the migration partner review the export together and mark each item as a route, a plugin, a consumer, a policy that moves to another system, or a retirement candidate. The step is done when every published API has an owner, a target mapping and a list of consumers who depend on it.

  2. Select a pilot API group

    Choose one group of APIs with few consumers, a clear owner, limited write operations and no custom mediation that is hard to replicate. Agree with the API owners what success looks like for the pilot, including who signs off on behavior and how consumer errors will be reported. The output is a written pilot scope that names the APIs, their consumers and the rollback owner.

  3. Build routes and plugins in a non-production environment

    Create the APISIX routes, upstreams, consumers and plugins for the pilot group in a non-production environment, using the Admin API or a declarative tool such as ADC so changes can be reviewed and repeated. Map OAuth validation to the openid-connect plugin, choosing introspection or local JWT signature checks as decided earlier, and map throttling to limit-count with an agreed counter store. The step closes when the pilot passes functional tests that compare responses and status codes against the WSO2 gateway.

  4. Run both gateways in parallel

    Keep WSO2 and APISIX serving the pilot group at the same time, and route a controlled share of traffic to APISIX using a traffic split at a load balancer or DNS control with short cutover records. Compare latency, error rates, authentication outcomes and throttling responses from both paths, and log any difference that the consumers could notice. The step is done when the comparison shows no unexplained differences over the agreed observation window.

  5. Cut over the pilot group

    Move all traffic for the pilot group to APISIX, keep the WSO2 route in place but idle, and confirm with consumers that their applications work with the new gateway endpoint and tokens. Watch the same metrics as the parallel run and keep the rollback step ready. The output is a signed cutover record that names the time of change, the owner and the state of the fallback route.

  6. Repeat the staged cutover for each remaining group

    Apply the same sequence to each remaining API group, starting with lower-risk groups and leaving the most consumer-sensitive APIs for later. Reuse the templates, plugin configurations and test suites from earlier groups, and record any group-specific exceptions in the inventory. Each group closes with its own cutover record and a check that no traffic still reaches the WSO2 gateway for that group.

  7. Test the rollback path before decommissioning

    Before any WSO2 gateway is shut down, rehearse a rollback for at least one group by moving its traffic back to WSO2 and confirming that consumers, keys and throttling behave as expected. Document the steps, the people involved and the checks that prove success. The step is done when the rollback has been run in a controlled window and the result is recorded.

  8. Decommission WSO2 gateways and archive evidence

    Once every group has run on APISIX and the rollback has been tested, stop routing to the WSO2 gateways, retain the exported configuration and logs according to your records policy, and remove the gateway components from scope. Confirm with the lifecycle and portal owners that functions moved to other systems, such as the developer portal and publisher workflows, are running. The output is a decommissioning record and an archive of the configuration, test results and cutover evidence.

Mapping throttling policies and OAuth validation

WSO2 API Manager enforces throttling through its traffic manager, with policies attached to applications, subscriptions and APIs. In APISIX, the closest built-in match is the limit-count plugin, which counts requests per key over a time window and rejects requests that exceed the limit. The mapping starts with an inventory of each tier, the key it counts against (consumer, application, IP address or header value) and the scope it applies to (single route or a group of routes). Routes that share a group value in limit-count share one counter, which is how a tier that spans several APIs can be reproduced.

  • Counter scope: Decide whether each tier counts per consumer, per route or per shared group, and write that scope down before editing any configuration.
  • Storage: Counters live in local memory by default, so each gateway node counts separately. Where several nodes must agree on a limit, configure a shared store such as redis, redis-cluster or redis-sentinel.
  • Window type: A sliding window needs APISIX 3.18.0 or later. Confirm your target release before choosing it.
  • Rejection behavior: Rejected requests return 503 by default. Clients and monitoring built around WSO2 throttle responses may need a custom rejection code and headers.
  • Tier parity: Test each tier with a load pattern that crosses the limit, and compare accepted request counts with the WSO2 baseline.

Confirm with your own gateway team which tiers are contractual, since those need the exact counts and response codes validated before cutover.

Questions buyers ask before hiring help with a WSO2 to APISIX move

How does migration effort scale with the number of APIs and custom authenticators?

Effort grows mainly with the number of API definitions, the number of distinct throttling policies and subscription tiers, and the number of custom authenticators, mediation sequences or workflows that have to be rebuilt as APISIX plugins. Ten APIs that share one OAuth setup and two throttling tiers are a very different job from fifty APIs with per-application policies and custom Java authenticators. An illustrative split: a team that inventories every API, groups them by identity and policy pattern, and reuses one plugin set for most of them will move far faster than one that rebuilds each API by hand. Ask for the inventory and a count of custom extensions before accepting any estimate.

What does a fixed-scope quote for this migration cover?

A fixed-scope quote is agreed in writing before work starts and lists the scope, deliverables and timeline. For a WSO2 move, expect it to name the API groups in scope, the gateway functions being replaced (routing, OAuth validation, throttling, logging), the plugins or plugin runner code to be written, the environments to be built, the parallel-running window and the rollback steps. It should also state what is excluded, such as the WSO2 Publisher and Developer Portal replacement, which WSO2 Enterprise features are retired and who owns post-cutover support. Ask for each deliverable to be tied to an acceptance check.

What must our team provide before the work starts?

The migration depends on access and facts that only your organization holds. Prepare the following:

  • A full export or inventory of APIs, their versions, subscriptions, applications, throttling policies and gateway environments
  • The list of custom authenticators, mediation sequences, workflows and extensions running in WSO2
  • Access to your identity provider for client registrations, scopes and test users, plus the token formats it issues
  • Non-production environments that resemble production, with representative traffic and certificates
  • Named owners for each API group who can approve cutover windows

Also confirm where logs and metrics go today, since those dashboards and alerts need the same treatment as the routes.

Can our internal platform team do this migration without outside help?

Yes, a capable internal team can do it, provided it has engineers who know APISIX routing and plugins, someone who understands how your WSO2 subscriptions and policies are configured, and time to run both gateways in parallel. The hard parts are usually not the route syntax but the policy translation, OAuth validation behavior and the cutover discipline across many API owners. Many teams bring in a partner for the first API group to set patterns, then continue alone. Compare the internal effort with the written scope and be honest about who would own the work after cutover.

How long should parallel running last?

Parallel running should last until each API group has passed its acceptance checks under real traffic and the rollback path has been exercised. The length is not a fixed number. It depends on how much traffic each group carries, how many business cycles it must cover (for example, month-end processing), how many consumer applications need to migrate their credentials or endpoints, and how confident the owners are in the throttling and OAuth behavior. Agree the exit criteria for each group in the written scope rather than a calendar date, and keep the WSO2 gateway available for rollback until those criteria are met.

How do we validate OAuth token handling after the move?

Confirm early whether APISIX will check tokens by calling your provider's introspection endpoint or by verifying JWT signatures locally. The openid-connect plugin uses introspection by default, while setting public_key or use_jwks verifies signatures locally and skips introspection. Each choice affects latency, provider load and revocation behavior, so decide it with your security team and test rejected, expired and revoked tokens explicitly. Your identity provider's own documentation and your API security review should drive the final configuration.

Does the throttling policy move cleanly into APISIX?

Usually the policies translate, but the counting model needs attention. The limit-count plugin keeps counters in local memory by default, while sharing them through Redis, Redis Cluster or Redis Sentinel. Routes in the same group share one counter, and rejected requests return 503 by default. Confirm whether your WSO2 tiers count per application, per subscriber or per API, and whether a sliding window is needed (that requires APISIX 3.18.0 or later). Test with production-like load before cutover, because per-node counters behave differently from a single shared counter.

What usually goes wrong in a WSO2 gateway move and how to prevent it

A WSO2 gateway carries more implicit behavior than its routes suggest: subscriptions, quotas, token checks, throttling and mediation all run without a separate config file. The cards below cover the failures that most often surface after cutover, each paired with a check to run before traffic moves.

Lost subscription and quota semantics

In WSO2, a subscription tier ties an application to an API with throttling limits, and those limits are enforced at the gateway. APISIX has no direct equivalent, so subscription tiers often become consumers with limit-count or other plugins that nobody maps back to the original tiers. Before cutover, export every tier and the applications subscribed to it, then write a table that maps each tier to a consumer group, a plugin set and a named owner. Confirm that every subscribed application still gets the same ceiling it had before.

Token validation mismatches

WSO2 typically validates tokens against its own key manager, while APISIX's openid-connect plugin validates through introspection by default. Switching to local JWT checks with public_key or use_jwks skips introspection, so a revoked token can still pass until it expires. Clients may also receive different claims or scopes than they did before. Run the same set of test tokens, including revoked, expired and wrong-audience tokens, through both gateways and compare the outcomes. Decide per API whether revocation must be immediate.

Per-node rate-limit counters

The limit-count plugin keeps counters in local memory by default. When APISIX runs on several nodes without shared storage, each node counts separately, so a client can exceed the intended limit by sending requests to different nodes. This is an easy gap to miss because a single-node test passes. Configure a shared backend such as redis, redis-cluster or redis-sentinel, and confirm that routes meant to share a quota use the same group name. Load-test with traffic spread across all nodes, not one.

Undocumented mediation logic

WSO2 mediation sequences often hold header rewrites, payload transformations, fault handlers and routing rules that were added over years and documented nowhere else. These behaviors are invisible in the API definition, so a route-by-route port silently drops them. Export every custom sequence and extension, list each mediation step with the consuming clients that depend on it, and assign each step a plugin, a custom plugin or a backend change. Ask the original developers or the owning team to review the list before sign-off.

Portal functions without an owner

The WSO2 Publisher and Developer Portal handle API design, lifecycle states, documentation, subscriptions and key issuance. APISIX covers the gateway, not these lifecycle functions, so developers may lose the place where they request access or read API docs. The cutover can leave consumers with keys that no longer map to a working process. Before moving traffic, assign a named owner for each portal function, choose where its replacement lives (a developer portal, a catalog or an internal process), and publish the new request path to every consuming team.

Gateway drift after cutover

After the move, changes made in the APISIX Admin API, the dashboard or the WSO2 Publisher can drift apart, and no one knows which one is authoritative. This produces routes that behave differently from their documented definitions and makes rollback unreliable. Choose one source of truth before the first group moves, such as declarative configuration kept in version control and applied with ADC, and block direct edits to the production gateway. Review the diff between declared and running configuration on a fixed schedule.

What drives the cost and duration of this migration

This table compares the main cost components and effort drivers for moving the WSO2 API Manager gateway onto APISIX, showing who is paid for each and what changes the total. Use it to build a like-for-like quote request, since the largest variables are usually scope, custom code and the length of the parallel run rather than the routing itself.

DriverWhy it changes cost or effortWhat to ask for in a quote
Number of APIs and environmentsEach API needs its route, upstream, auth and policy mapping, tested in every environment it runs in. Cost grows with the count of APIs and of environments, not with the gateway alone.A per-group inventory with API count, environments and the mapping effort assumed for each group.
Custom authenticators and mediation sequencesWSO2 custom authenticators, policies and mediation logic must be rewritten as APISIX plugins in Lua, or as plugin runner code in Java, Go or Python. Custom code is often the largest unplanned item.A list of every custom component found in the WSO2 deployment, with the target plugin type and a test plan for each.
Throttling complexityWSO2 throttling tiers, subscription limits and burst rules must be expressed with APISIX limit-count or other traffic plugins. Shared counters across nodes need Redis or a similar store, which adds design and operations work.A throttling matrix that maps each WSO2 tier to its APISIX equivalent, including whether counters must be shared across gateway nodes.
OAuth validation approachIntrospection on every request and local JWT signature checks need different key management, caching and failure handling. The choice affects both the build and the load test effort.The validation method chosen per API, the identity provider used, and who owns key rotation after handover.
Lifecycle and portal functions to replacePublisher, Developer Portal, subscriptions and API lifecycle states are not part of the gateway. Replacing them with another tool, a Git-based workflow or the ADC tool is a separate build with its own licensing and hosting cost.A decision record for each lifecycle function, with the owner, the tool and whether it is one-time setup or recurring.
Length of the parallel runRunning WSO2 and APISIX side by side doubles the operational surface and the traffic comparison work. Longer runs cost more in both licensing for the old platform and staff time for monitoring.The parallel run length agreed per group, the exit criteria, and who pays for WSO2 licensing during overlap.
Rollback and cutover methodGradual traffic shifting and tested rollback paths add engineering time but reduce the risk of a failed cutover. Single-step switches are cheaper to build and riskier to run.The cutover method per group and the rollback steps, with the time needed to revert each one.

Migration questions teams ask about WSO2 API Manager and APISIX

Does APISIX replace the whole WSO2 API Manager or only the gateway?

APISIX replaces the gateway runtime only. WSO2 API Manager also includes an API Publisher, a Developer Portal, a control plane and a traffic manager for throttling, and APISIX does not provide those web interfaces out of the box. Before the move, list every lifecycle step your teams perform in the Publisher and every portal feature developers use, such as subscriptions, API keys and documentation. Each item needs a new home: a Git-based catalog, an existing developer portal, a self-hosted portal product, or a small internal tool that calls the APISIX Admin API. Confirm the target for each function with the people who own it, because a gateway migration that leaves subscriptions or key issuance unassigned will stall at cutover. The APISIX documentation is the right starting point for what the gateway itself provides.

How do WSO2 throttling policies map to APISIX rate limits?

Map each WSO2 throttling tier to a rate-limiting plugin on APISIX, most often limit-count, and decide where the counters live. By default, limit-count keeps counters in local memory per gateway node, so limits apply per node unless you share them. Shared counters use redis, redis-cluster or redis-sentinel, and routes that share a group name share one counter. Rejected requests return 503 by default, so change the rejection status if your clients expect 429. Subscription-level and application-level tiers usually become consumer-scoped or route-scoped configurations, and some WSO2 tiers may have no direct equivalent, which you should record as a decision rather than an assumption. Sliding-window limiting requires APISIX 3.18.0 or later. Ask the migration team for a table that lists each WSO2 policy, its APISIX target and the expected behavior during a traffic spike.

Can APISIX validate the same OAuth tokens that WSO2 validates today?

Usually yes, if your identity provider issues tokens that APISIX can check. The openid-connect plugin validates tokens through the provider's introspection endpoint by default. You can instead set public_key or use_jwks so that APISIX verifies JWT signatures locally and skips introspection, which removes a network call per request but changes how revocation is detected. Choose the mode by checking how your current WSO2 setup validates tokens, which claims it reads, and how quickly revoked tokens must stop working. Test with real token types, including opaque tokens, JWTs with custom scopes and tokens from each client application. Keep the identity provider unchanged where possible, so the migration tests the gateway rather than the login flow.

How long does a group-by-group API migration take?

The duration depends on the number of APIs, the number of distinct authentication and throttling patterns, and how many consumers must be coordinated. Timing is set in the written scope and depends on your environment, so no duration is given here. The main drivers are the count of WSO2 policies that need translation, the number of consumers that must change base URLs or tokens, whether you run both gateways in parallel with a traffic split, and how much of the lifecycle and portal work moves at the same time. Moving the least critical API group first usually shortens the learning curve for later groups. Ask any partner to break the schedule into inventory, translation, parallel running, cutover and decommissioning, with an owner for each stage.

Can our own team do this migration without a partner?

A capable platform team can do it, provided it has someone who understands both the WSO2 deployment and APISIX configuration, and time to run both gateways in parallel. The work includes exporting WSO2 API definitions, policies and application subscriptions, translating them, testing auth and limits, and building the replacement for the portal functions. Teams often underestimate the test effort for consumers and the design of rollback. A partner is useful when the inventory is large, when policies are heavily customized, or when internal staff are needed for other priorities. Ask for a written list of deliverables so you can compare a self-run plan with a fixed-scope engagement on equal terms.

What should we keep running on WSO2 during the transition?

Keep the WSO2 gateway serving production traffic until each API group is proven on APISIX, and keep its control plane available for the period you need to read configuration and subscription history. Route traffic to APISIX gradually, for example with a DNS or load-balancer split, and keep the WSO2 route as the rollback target. Freeze changes to any API while it is being moved, so both sides do not drift. Record the exact WSO2 release in use. WSO2 API Manager 4.7.0 was released on April 29, 2026, and its repository notes that building it requires JDK 21, which matters if you rebuild custom extensions or authenticators. Decide the decommissioning date only after rollback has been tested and consumers have confirmed their traffic.

Do we need to rewrite custom WSO2 mediation or authenticators in APISIX?

Some custom logic will need rewriting, but not all of it needs to be rewritten in the same way. APISIX plugins can be written in Lua, or through plugin runners in Java, Go and Python, and WebAssembly is also supported. First, check whether each custom mediation step is still needed, because many header, rewrite or auth steps map to built-in plugins. Where logic is truly custom, select the implementation language by the skills your team maintains. Test each custom plugin against the same inputs as the WSO2 version, including error responses and edge-case headers. Treat any unmapped custom behavior as a design item with an owner, not a loose end at cutover.

Is there a tool that helps move API definitions into APISIX?

ADC (API Declarative CLI) is an Apache-2.0 tool published by API7 that works with Apache APISIX and API7 Enterprise Admin APIs. It offers ping, dump, diff, sync, lint and convert openapi commands, which can help you compare declared configuration with a running gateway and keep it under version control. Its convert openapi command can help bootstrap definitions from existing OpenAPI documents, but generated output still needs review against your WSO2 policies, because throttling tiers and subscription rules do not translate automatically. Confirm the tool version and its supported APISIX release before you depend on it, and check its repository at the ADC repository for current command behavior.

How DeployOpen works on this

DeployOpen plans and delivers the move from WSO2 API Manager to self-hosted Apache APISIX inside your own infrastructure, starting with an inventory of the gateway functions you actually use. The work is agreed as a fixed-scope engagement, with deliverables and timelines set in writing before any cutover planning begins.

How we scope

  • We inventory published APIs, gateway policies, throttling tiers, OAuth settings and consumer applications running on WSO2 today.
  • The written scope lists which APIs move, which lifecycle and portal functions get a new home, and what stays on WSO2 during transition.
  • We confirm which APISIX version, deployment mode and identity provider the target design will use before estimating any build work.

How we build

  • We map each throttling tier to APISIX limit-count or equivalent plugin settings and test shared counters before any traffic moves.
  • We configure OAuth validation with the openid-connect plugin, choosing introspection or local JWT signature checks per API and documenting the decision.
  • We move APIs in agreed groups, running WSO2 and APISIX in parallel, with a rollback path documented for each group.

How we hand over

  • Handover includes route and plugin configuration as code, a map from each WSO2 policy to its APISIX equivalent, and test evidence per API group.
  • We document the replacement for developer portal, publisher and subscription workflows that your teams relied on in WSO2.
  • Runbooks cover rollback steps, certificate and secret handling, and the operating procedure for adding or retiring an API in APISIX.

How we support

  • Post-cutover support, upgrades and continuous testing are available as a retainer, scoped separately from the migration.
  • Ask in the quote which support hours, response paths and upgrade responsibilities apply after WSO2 is switched off.
  • Confirm with your team which WSO2 components remain licensed or in use, since the migration plan depends on that decision.

Sources and further reading

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.