[Articles](https://zato.io/articles/index.html)

# Open-Source Oracle SOA Suite Alternative (in Python)

**Premier Support for Oracle SOA Suite 12c ends in December 2026, and Extended Support in December 2027.

This article describes the two paths Oracle offers, maps SOA Suite concepts to an open-source platform in Python and presents a sequence for moving SOA composites to it.**

By Dariusz Suchojad

![Open-source Oracle SOA Suite alternative in Python](https://zatosource-production.b-cdn.net/static/img/articles/enterprise-service-bus/enterprise-service-bus.webp)

10 min. read

Share this article: [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fzato.io%2Farticles%2Fopen-source-oracle-soa-suite-alternative.html) | [FB](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fzato.io%2Farticles%2Fopen-source-oracle-soa-suite-alternative.html) | [Email](mailto:?subject=Open-Source Oracle SOA Suite Alternative article from zato.io&body=https://zato.io/articles/open-source-oracle-soa-suite-alternative.html)

- - -

Oracle SOA Suite runs the integrations of many organizations that use Oracle E-Business Suite, Oracle Database and the other Oracle products. A SOA composite combines BPEL processes, Mediator components, business rules and adapters for databases, files, FTP servers and JMS queues, and Oracle Service Bus exposes and routes the services through proxy and business services. Messages are transformed with XSLT and XQuery, composites are designed in JDeveloper, and the composites run on Oracle WebLogic Server, with the state of each process stored in the SOA infrastructure schemas of an Oracle database.

## The end of Premier Support for SOA Suite 12c {#the-end-of-premier-support-for-soa-suite-12c}

In June 2025, Oracle [extended the support dates](https://blogs.oracle.com/fusionmiddlewaresupport/soa-suite-12214-end-of-correction-dates-has-been-extended-2-more-years) of SOA Suite 12.2.1.4, the last release of SOA Suite 12c. The [Oracle Fusion Middleware Statement of Direction](https://blogs.oracle.com/fusionmiddlewaresupport/oracle-fusion-middleware-statement-of-direction-is-now-available) of May 2026 confirms the dates for 12c and for its successor:

| Version | End of Premier Support | End of Extended Support |
| --- | --- | --- |
| SOA Suite 12.2.1.4 | December 2026 | December 2027 |
| SOA Suite 14.1.2 | 2030 | 2033 |

After December 31, 2026, Oracle [delivers no further full updates and no quarterly security fixes](https://blogs.oracle.com/fusionmiddlewaresupport/action-required-upgrade-from-oracle-soa-suite-12-2-1-4-before-premier-support-ends) for SOA Suite 12.2.1.4, and after December 2027 no updates or security fixes of any kind. Oracle intends to offer a Market Driven Support program for 12.2.1.4 on a yearly basis beyond 2027, with the details to be communicated later.

An organization on SOA Suite 12c therefore chooses between two paths offered by Oracle - an upgrade to SOA Suite 14.1.2 or a move to Oracle Integration, the integration service of Oracle Cloud.

## What the upgrade to SOA Suite 14.1.2 involves {#what-the-upgrade-to-soa-suite-1412-involves}

Oracle states that an upgrade from 12c to 14.1.2 [requires a complete upgrade and is not a patch set](https://docs.oracle.com/en/middleware/fusion-middleware/14.1.2/fupss/introduction-oracle-soa-suite-and-business-process-management-upgrade.html). The middle tier and the database schemas are [upgraded together](https://docs.oracle.com/en/middleware/soa-suite/soa/14.1.2/soakn/release-upgrade.html), and the schemas and domain directories are upgraded in place. Domains that include SOA Core Extension or Oracle Enterprise Repository cannot be upgraded in place and are migrated side by side.

The platform underneath changes as well. WebLogic Server 14.1.2 [runs on JDK 17 or JDK 21](https://docs.oracle.com/en/middleware/fusion-middleware/weblogic-server/14.1.2/notes/whatsnew.html), and the WebLogic Server Administration Console is [removed](https://docs.oracle.com/en/middleware/fusion-middleware/weblogic-server/14.1.2/notes/deprecated-removed-functionality.html) in favor of the WebLogic Remote Console.

The Statement of Direction also announces the next suite release, Fusion Middleware 27, targeted for 2027 and built on a Jakarta EE 11 container. An organization that upgrades to 14.1.2 now plans the following upgrade in the same document.

## What the move to Oracle Integration involves {#what-the-move-to-oracle-integration-involves}

Oracle's own architecture team states that a move from SOA Suite to Oracle Integration [is not an upgrade or an automatic migration](https://www.ateam-oracle.com/guidelines-when-moving-integration-workloads-from-soa-to-oracle-integration). The two products have different design-time and runtime environments, and the integrations are developed again in Oracle Integration, with BPEL processes, Mediator components and Service Bus pipelines rebuilt as orchestrations in its visual designer.

Oracle Integration is [billed in message packs](https://docs.oracle.com/en/cloud/paas/application-integration/oracle-integration-oci/license-types.html) of 5,000 billing messages per hour for a new license, or 20,000 billing messages per hour for an existing Fusion Middleware license brought to the cloud. The service also changes generation on Oracle's schedule. Oracle Integration Generation 2 was [discontinued on August 31, 2025](https://docs.oracle.com/en/cloud/paas/application-integration/whats-new/end-life-oracle-integration-generation-2.html), and its customers upgraded to Oracle Integration 3.

Because each composite is rebuilt on the cloud path in any case, the choice of the target platform is open, and the integrations can be rebuilt in Python, on an open-source platform, on your own infrastructure.

## From JDeveloper to Python {#from-jdeveloper-to-python}

[![A Zato environment with its server, scheduler, rule engine, B2B and EDI, MCP gateway, Dashboard, API portal and pub/sub, running on-premises or in the cloud](https://zato.io/docs/gfx/arch/index/basic-concepts/zato-architecture.webp)](https://zato.io/docs/arch/index.html)

A single SOA composite consists of several kinds of artifacts. The composite definition, a BPEL process drawn in the JDeveloper designer, XSD schemas and WSDL interfaces for each message, XSLT maps, adapter configuration files, a configuration plan for each environment, and in many installations a Service Bus project with its own pipelines and XQuery transformations. The logic of one business process is spread across graphical designers and XML files of different formats, and it is deployed as a SOA archive to WebLogic Server.

SOA Suite belongs to the generation of integration products built on Java EE application servers and graphical designers. The process logic is written in BPEL, the data mapping in XSLT or XQuery and the custom code in Java, each with its own tools and its own specialists.

In Zato, an integration is a Python service. Python is the most widely used programming language - first in the [TIOBE index](https://www.tiobe.com/tiobe-index/) for October 2026, and used extensively by 58 percent of the developers who answered the [2026 Stack Overflow Developer Survey](https://survey.stackoverflow.co/2026/technology/data/languages-timeseries). Python is also the language of data, machine learning and AI agents, the next generation of integration.

An integration in Python is one file that any Python developer reads, reviewed like any other code, versioned in Git and written fluently by AI assistants. It is developed in the IDE of your choice and tested with the [built-in testing framework](https://zato.io/docs/api-testing/index.html). Channels, connections and security definitions are configured in the Dashboard, which also shows the audit log of every message that the integrations process.

[![The audit log in the Zato Dashboard, with each message, its outcome and its parsed content](https://zatosource-production.b-cdn.net/static/img/healthcare/audit-log.webp)](https://zato.io/docs/admin/audit-log/index.html)

## SOA Suite concepts and their Zato counterparts {#soa-suite-concepts-and-their-zato-counterparts}

| Oracle SOA Suite | Zato |
| --- | --- |
| SOA composite | Python services |
| BPEL process | Python service |
| Mediator component | Python, with routing in the service |
| Service Bus proxy service | Channels for [REST](https://zato.io/docs/dev/rest/channels.html), [SOAP](https://zato.io/docs/dev/soap/index.html), [file transfer](https://zato.io/docs/dev/file-transfer/index.html) and [message queues](https://zato.io/docs/dev/message-queues/index.html) |
| Service Bus business service | Outgoing connection, used by name in the service |
| XSD schema | [Data model](https://zato.io/docs/dev/model/index.html) |
| XSLT and XQuery transformations | Python, with [data models and mappers](https://zato.io/docs/dev/rest/data-mapping.html) |
| Database adapter | [Oracle Database connection](https://zato.io/docs/dev/examples/sql/oracle.html), with queries and stored procedures |
| File and FTP adapters | [File transfer](https://zato.io/docs/dev/file-transfer/index.html) |
| JMS adapter | [Message queues](https://zato.io/docs/dev/message-queues/index.html) |
| Oracle Business Rules | [Rule engine](https://zato.io/docs/rule-engine/index.html) |
| Oracle B2B with EDIFACT documents | [EDIFACT](https://zato.io/tutorials/edifact.html) interchanges parsed, routed and serialized in Python |
| Instance tracking in Enterprise Manager | [Audit log](https://zato.io/docs/admin/audit-log/index.html) |
| Configuration plan per environment | [YAML configuration](https://zato.io/docs/admin/enmasse.html) in Git |
| SOA archive deployment | [Hot deployment](https://zato.io/docs/dev/hot-deploy.html) of Python files |
| Enterprise Manager Fusion Middleware Control | Dashboard |

## A BPEL process rewritten in Python {#a-bpel-process-rewritten-in-python}

A typical BPEL process receives a shipment notice from a logistics provider, updates the order in the Oracle database of the ERP through the Database adapter, sends the tracking details to the CRM and publishes the event for the other systems that subscribe to it. In SOA Suite, this process requires a composite, a BPEL process, XSD schemas, a WSDL interface, an XSLT map, a Database adapter configuration and a configuration plan.

In Zato, the same process is one Python file:

```python
# -*- coding: utf-8 -*-

# stdlib
from dataclasses import dataclass

# Zato
from zato.server.service import Model, Service

@dataclass(init=False)
class ShipmentNotice(Model):
    order_number: str
    carrier: str
    tracking_number: str

class ProcessShipmentNotice(Service):
    """ Records shipments in the ERP and sends their tracking details to the CRM.
    """
    name = 'orders.process-shipment-notice'
    input = ShipmentNotice

    def handle(self) -> 'None':

        notice = self.request.input

        # The order is marked as shipped in the ERP database ..
        conn = self.out.sql['ERP']

        query = """
            UPDATE orders
            SET status = 'SHIPPED', tracking_number = :tracking_number
            WHERE order_number = :order_number
        """

        params = {
            'order_number': notice.order_number,
            'tracking_number': notice.tracking_number,
        }

        conn.execute(query, params)

        # .. the CRM receives the tracking details ..
        tracking = {
            'order': notice.order_number,
            'carrier': notice.carrier,
            'tracking_number': notice.tracking_number,
        }

        self.rest['CRM'].post(tracking)

        # .. and every subscriber to shipped orders receives the notice.
        self.publish('orders.shipped', notice)
```

The [tutorial](https://zato.io/tutorials/main/01.html) builds a complete integration of this kind, from an empty environment to a working API.

[![Creating a REST API endpoint in the Zato Dashboard, with its URL path, service and security definition](https://zato.io/docs/gfx/api/tutorial/tutorial-rest-channel-no-yellow.webp)](https://zato.io/docs/dev/rest/channels.html)

## Converting SOA composites with AI {#converting-soa-composites-with-ai}

Composites, BPEL processes, XSLT maps, XQuery transformations, schemas and adapter configurations are XML files, and AI assistants translate them into Python services. An AI assistant reads the artifacts of a composite or a Service Bus project and writes one Python service per process, with the maps expressed as Python code and the schemas as data models. With the [Zato documentation connected to it over MCP](https://zato.io/docs/ai/connect-your-copilot.html), the assistant uses the real APIs of the platform.

Each converted service is then reviewed by your developers and tested with messages from the production SOA Suite environment. The same message is processed by the composite and by the Python service, and the outputs are compared before the Python service receives live traffic.

## The migration sequence {#the-migration-sequence}

A migration from SOA Suite proceeds one composite at a time, with both platforms running side by side for as long as it takes:

1. **Inventory the composites.** For each composite and Service Bus project, record its services, references, BPEL processes, transformations, adapters, business rules and configuration plans.
2. **Define the connections.** Every reference, adapter and business service becomes an outgoing connection in Zato, and every exposed service and proxy service becomes a channel, defined for each environment in YAML.
3. **Convert the composites with AI.** An AI assistant translates the BPEL processes, Mediator routing and transformations into Python services, and your developers review each service.
4. **Move the business rules.** Each Oracle Business Rules dictionary becomes a ruleset of the rule engine, which services evaluate at runtime.
5. **Test with production messages.** Messages from the production composites are sent to the new services, and their outputs are compared with the outputs of SOA Suite.
6. **Switch the endpoints.** Each calling system, trading partner, file location and queue is pointed to the Zato channel in turn.
7. **Retire the SOA domain.** When the last composite carries no more traffic, the WebLogic servers and the SOA infrastructure schemas are shut down.

## Where Zato runs {#where-zato-runs}

Zato runs on your own infrastructure - on physical or virtual servers, in Docker, in Kubernetes and in any cloud, including Oracle Cloud Infrastructure. It connects to [Oracle Database](https://zato.io/docs/dev/examples/sql/oracle.html) with queries and stored procedures, including REF CURSOR result sets, and to the [SAP](https://zato.io/docs/dev/sap/index.html), REST, SOAP, file transfer and message queue systems that SOA composites integrate.

EDIFACT messages from trading partners, such as ORDERS, DESADV and INVOIC, are parsed into Python objects, routed by message type and serialized back byte for byte, in the same services that call the ERP, the database and the REST APIs of the organization.

Integrations are Python code and YAML configuration in your own Git repository. Enterprise support is available 24x7x365 from the team that builds Zato.

## Oracle SOA Suite and Zato compared {#oracle-soa-suite-and-zato-compared}

|  | Oracle SOA Suite | Zato |
| --- | --- | --- |
| Open source | No | Yes |
| Integrations in the most popular programming language | No | Yes |
| Integrations as code instead of graphical designers | No | Yes |
| One language for process logic and data mapping | No | Yes |
| No license fees | No | Yes |
| Development in the IDE of your choice | No | Yes |
| EDIFACT, REST, SOAP and SQL in one platform | Yes | Yes |
| Enterprise support 24x7x365 | Yes | Yes |

## Frequently asked questions {#frequently-asked-questions}

### When does support for Oracle SOA Suite 12c end? {#when-does-support-for-oracle-soa-suite-12c-end}

Premier Support for SOA Suite 12.2.1.4 ends on December 31, 2026, and Extended Support in December 2027. Oracle intends to offer a yearly Market Driven Support program for 12.2.1.4 beyond 2027.

### Can SOA composites be moved to Oracle Integration automatically? {#can-soa-composites-be-moved-to-oracle-integration-automatically}

No. Oracle states that the move from SOA Suite to Oracle Integration is not an upgrade or an automatic migration, and the integrations are developed again in Oracle Integration.

### Can AI convert BPEL processes and XSLT maps to Python? {#can-ai-convert-bpel-processes-and-xslt-maps-to-python}

Yes. An AI assistant translates BPEL processes, Mediator routing, XSLT maps and XQuery transformations into Zato services, and with the Zato documentation connected to it over MCP, it uses the real APIs of the platform. Your developers review each service and test it with messages from the production composite before it takes over the traffic.

### Does Zato process EDIFACT messages? {#does-zato-process-edifact-messages}

Yes. Zato parses EDIFACT interchanges into Python objects, routes messages by type and serializes them back byte for byte, as shown in the [EDIFACT tutorial](https://zato.io/tutorials/edifact.html).

### Can Zato and SOA Suite run at the same time? {#can-zato-and-soa-suite-run-at-the-same-time}

Yes. During a migration both platforms run side by side, and endpoints are moved to Zato one composite at a time.

### Is Zato open source? {#is-zato-open-source}

Yes. The source code of Zato is [on GitHub](https://github.com/zatosource/zato).

### How do I get started? {#how-do-i-get-started}

Start the [tutorial](https://zato.io/tutorials/main/01.html) or [schedule a demo](https://zato.io/services/demo.html).

Dariusz Suchojad is founder of Zato Source.

**Planning a move from Oracle SOA Suite? [Request your customized demo today](https://zato.io/services/demo.html).**
