Introduction
The renewal quote arrives in the second week of the quarter, and nobody in the room can fully explain it. There is a line for connector count, another for endpoints, a third for processing capacity, and a set of tier thresholds that were negotiated by someone who has since left the business. The number is larger than last year. The integration estate has grown, so that is not unreasonable in itself. What is harder to explain is the pattern underneath it.
Because in the same 12 months, the engineering team quietly built four of the firm’s most demanding data flows entirely outside the platform. Not out of rebellion, and not because anyone made an architectural decision to do so. They did it because those particular flows involved transformation logic that would have taken longer to express in a visual mapper than to write in Java, and because two of them had to run inside a network segment the platform could not reach.
This is a common situation, and it points to a question that most enterprises answer by accident rather than on purpose: which integrations genuinely belong on a licensed platform, and which belong in code? The answer matters more than the tooling debate that usually surrounds it, because getting it wrong is expensive in both directions. Over-buying platform capacity for workloads that never needed it wastes budget. Hand-rolling integrations that a connector would have solved in an afternoon wastes engineering time and creates maintenance debt nobody wants to own.
This article looks at why code-based and open-source integration frameworks have become a significant part of enterprise architecture, where they genuinely outperform platform-based approaches, and, just as importantly, where they do not.
What “Code-Based Integration” Actually Means
Part of the reason this debate goes in circles is that the term covers three quite different things, and people arguing about it are frequently discussing different categories without realizing it.

The first category is bespoke point-to-point scripting: custom code written per interface with no shared runtime, no common error handling, and no reusable patterns. This is what most architects picture when they hear “custom integration”, and their skepticism is well founded. It scales badly, concentrates knowledge in whoever wrote it, and becomes progressively harder to change. Very few of the arguments in this article apply to it.
The third category is open source iPaaS: self-hosted platforms such as n8n, Airbyte, or Kestra that offer visual builders under an open license. These solve a licensing problem rather than an architectural one, and they carry their own operational burden. Running your own integration platform means owning the infrastructure, patching, upgrades, and availability.
The second category is the subject of this article, and it is meaningfully different from both. An integration framework is a library that implements established integration patterns and that you embed inside your own applications. Apache Camel is the most widely adopted example, alongside Spring Integration and Camel’s cloud-native runtimes on Quarkus and Kubernetes. There is no central platform, no separate console, and no vendor runtime. The integration logic lives in your codebase, deploys through your existing pipeline, and runs wherever your applications run.
|
Top 5 Forces Pushing Enterprises Toward Code-First Integration
The shift toward framework-based integration is not driven by developer preference. It is driven by a set of practical constraints that recur across large integration estates.
1. Cost structure and the per-connection problem
Most commercial integration platforms price on some combination of connections, endpoints, or processing capacity. That model is reasonable when the estate is small and each integration offers clear business value. It becomes problematic as the estate matures, because cost scales with the number of interfaces rather than with the value or complexity of each one. A trivial nightly file transfer and a business-critical real-time flow can consume similar licensed capacity.
The consequence is a quiet distortion in architectural decision-making. Teams begin bundling unrelated logic into a single integration to avoid consuming another connection, or defer genuinely useful automation because the marginal license cost cannot be justified. When commercial structure begins to shape technical design, it is worth examining whether the model still fits.
2. Vendor lock-in and the cost of exit
Integration logic built in a proprietary visual environment is expressed in that vendor’s format. It cannot be exported to a competitor, and it usually cannot be meaningfully version-controlled, diffed, or reviewed outside the platform. Over several years, an organization accumulates a substantial body of business logic that exists only inside one vendor’s runtime.
This becomes concrete at renewal. The realistic cost of moving is not the new license but the rebuild of every integration, which is precisely why renewal negotiations tend to favor the incumbent. Framework-based integrations avoid this because the logic is ordinary source code in your repository. Migrating runtimes is an engineering exercise rather than a rewrite.
3. Deployment topology
Cloud-hosted platforms assume the integration runs in the vendor’s environment, with agents or runtimes extended into your network for on-premise access. That model works well for most enterprise connectivity, but it constrains a specific and growing set of cases: workloads that must run within a particular jurisdiction, integrations embedded in edge deployments, air-gapped environments, and services that need to sit alongside an application in the same Kubernetes cluster to meet latency targets.
Because a framework is a library rather than a platform, it deploys wherever your applications deploy. Camel’s runtimes are built for exactly this: Camel on Quarkus offers fast startup and low memory consumption suited to containerized and serverless deployment, while Camel K targets Kubernetes directly.
4. The complexity ceiling
Visual integration builders are efficient for a well-defined band of problems: mapping fields between systems, applying straightforward conditional routing, orchestrating a sequence of calls. Above that band, expressiveness degrades. Complex conditional logic, multi-stage stateful aggregation, custom algorithms, and intricate error-compensation flows are all possible on most platforms, but the diagram no longer clearly represents what the code does.
Experienced integration teams recognize the symptom: a canvas so dense that maintaining it requires the person who built it, and one in which the visual representation actively obscures rather than communicates the logic. At that point the visual layer has become overhead.
5. Engineering practice
This is the argument that tends to matter most to platform engineering functions, and it is often the deciding one. Code-based integrations participate in the software delivery practices an organization has already invested in. They live in Git with full history and attribution. They are reviewed through pull requests. They are covered by automated unit and integration tests that run before merge. They deploy through the same pipeline and with the same approval gates as the rest of the estate.
Platform-based integrations typically sit outside this. Many vendors offer versioning and promotion tooling, but it runs in parallel with the organization’s primary delivery process rather than being part of it. For firms in regulated sectors, where change control evidence is a compliance requirement rather than an engineering preference, that separation creates real friction.
Not sure which integrations belong where?
Our integration architecture assessment catalogs your existing estate, classifies each workload, and gives you a costed recommendation with the reasoning made explicit.
Schedule a call →What a Framework Gives You That Custom Code Does Not
The most common objection to code-first integration is that it means reinventing infrastructure that the platform provides for free. This is a fair concern, and it is exactly why the distinction drawn earlier matters. A framework is not an empty editor.
Apache Camel implements the Enterprise Integration Patterns catalog, including content-based routers, splitters, aggregators, resequencers, idempotent consumers, wire taps, circuit breakers, and sagas. These are the patterns that emerged from decades of enterprise messaging work, and they are the same patterns commercial platforms expose as visual components. Using a framework means using them as tested library code rather than as canvas elements.
Alongside the patterns comes connectivity. Apache Camel provides several hundred components covering the protocols and systems that appear in enterprise estates: message brokers, cloud storage and queueing services, databases, file and transfer protocols, SOAP and REST endpoints, and major SaaS platforms. The gap in prebuilt SaaS connectivity relative to a commercial platform is real, but it is narrower than most architects assume.
The framework also handles the concerns that make integration genuinely difficult: retry semantics with configurable backoff, dead-letter handling, transaction management, streaming for large payloads, and type conversion. And because Camel supports multiple domain-specific languages, teams can express routes in Java, XML, YAML, or Kotlin, which matters when the maintaining audience is broader than the authoring one.
The Honest Trade-Offs
An article that argued only one way would not be much use for making a decision. There are substantial reasons why commercial integration platforms hold the position they do, and several of them are decisive in the right context.
-
Skills availability is a genuine constraint
Framework-based integration requires engineers who are comfortable with the JVM ecosystem, containerization, and modern delivery practice. That capability is harder to hire and harder to retain than platform-specific configuration skills, and it is more expensive. An organization without an established engineering function will struggle to sustain a code-first estate regardless of the technical merits. -
Time to first integration is materially longer
A platform with a maintained connector for a given SaaS application will connect to it faster than any code-based approach. Authentication, pagination, rate limiting, and schema handling are already solved. When speed of delivery is the dominant constraint, and the integration is a standard one, the platform wins clearly. -
Connector maintenance is real work
SaaS vendors change their APIs. On a commercial platform, absorbing those changes is the vendor’s responsibility and is covered by the license fee. In a framework-based estate, it is yours. Across dozens of third-party integrations, that is a meaningful and recurring operational commitment. -
Support and accountability
A commercial contract provides a defined escalation path and a supplier who is accountable when something fails. Community support for open source frameworks is genuinely strong, but it is not an SLA. For organizations where integration failure carries regulatory or contractual consequences, that distinction matters at board level, and commercial backing is available through vendors such as Red Hat for exactly this reason. -
Business-user accessibility
|Some platforms allow analysts and operations staff to build or adjust straightforward automations without engineering involvement. Where that capability is being genuinely used, it delivers throughput a code-first model cannot match, because every change would otherwise queue behind an engineering backlog.
A Decision Framework: Which Workloads Belong Where
Rather than choosing an approach for the organization as a whole, a more useful exercise is to classify workloads. Most integration estates contain a mixture, and the classification usually resolves quite quickly once the right questions are asked.

No single signal is decisive. An integration with complex transformation logic that runs monthly against a stable API is a reasonable platform candidate. A simple field mapping that must execute inside an air-gapped environment is not. The value is in the aggregate: when four or five signals point the same way, the decision is usually clear.
Signals that a platform-only estate is reaching its limits
- Engineering teams are routinely building integrations outside the platform without an architectural decision to do so
- License cost is influencing whether useful integrations get built at all
- Specific flows cannot meet latency or throughput targets within the platform runtime
- Integration changes cannot satisfy the change-control evidence your regulator or auditor expects
- Individual integrations have become complex enough that only their original author can safely modify them
- Deployment or data-residency constraints are being worked around rather than met
The Hybrid Reality: Most Enterprises Run Both
Framing this as a binary choice is the least useful part of the usual debate. In practice, mature integration estates operate two tiers, and the architectural work lies in clearly defining the boundary between them so the split is deliberate.

The first tier handles the long tail of standard connectivity: SaaS-to-SaaS synchronization, scheduled batch processing, file transfer, and workflow automation that benefits from business-user visibility. This is where prebuilt connectors and vendor-maintained authentication deliver clear value, and where a licensed platform earns its cost.
The second tier handles the demanding minority: high-volume or latency-sensitive routing, deeply bespoke transformation, and anything constrained by deployment topology or regulatory requirement. These are the integrations where platform limitations surface first and where framework flexibility pays for the additional engineering investment.
What makes this work is governance, not the split itself. Both tiers need to share API standards, feed a common observability layer, follow consistent error-handling conventions, and appear in a single integration catalog. Without that, a two-tier estate degrades into shadow IT with extra steps, which is materially worse than either approach on its own.
Making the Move Without Rewriting Everything
Organizations that decide to introduce a framework tier rarely need a migration program. The effective approach is incremental.
Start by identifying the small number of integrations where the platform is genuinely constraining you, whether through cost, capability, or deployment reach. These usually represent a modest fraction of the estate but a disproportionate share of the friction, and they make the strongest case for the new tier.
Establish observability before migrating anything. A framework-based integration must feed the same monitoring and alerting as the rest of the estate from day one; otherwise, the new tier becomes an operational blind spot, and the pilot fails for reasons unrelated to the technology.
Then apply a strangler-fig approach: run the new implementation in parallel with the existing one, compare outputs across a full business cycle, and cut over only when confidence is established. This is deliberately unglamorous, which is why these transitions succeed when they are run as engineering work rather than as a platform-replacement initiative.
How NeosAlpha Approaches the Decision
We deliver integration across both models. NeosAlpha is a certified Boomi Gold Partner and a Workato partner, and our teams also build and support code-based integrations on Apache Camel, Spring Integration, and Azure. That combination is deliberate, and it shapes how we advise.
A consultancy aligned to a single platform will tend to recommend that platform, because it is what they can deliver. Because our practice spans licensed platforms and open-source frameworks, we can assess an estate on its merits and recommend a split that actually fits, including recommending that a client stay exactly where they are. In a number of engagements, the right answer has been to keep the existing platform and move three or four specific flows into a framework tier, which is a considerably smaller intervention than either vendor in the conversation would typically propose.
Our starting point is usually an integration architecture assessment: cataloging the existing estate, classifying workloads against the signals above, modeling the cost and risk of each option, and producing a recommendation with the reasoning made explicit. Firms across legal, financial services, insurance, and retail have used that assessment to make the decision on evidence rather than on vendor positioning.
Conclusion
Code-based and open source integration frameworks deserve serious consideration in enterprise architecture, but not because platforms have failed. They deserve it because the range of integration problems has widened. Deployment constraints, latency expectations, regulatory evidence requirements, and the sheer complexity of modern transformation logic have produced a class of workloads that visual platforms were not designed to serve, and for which the cost structure of licensed integration does not align well with the value delivered.
The organizations handling this well are not the ones that picked a side. They are the ones who stopped treating integration as a single procurement decision and started treating it as a portfolio, where each workload is routed to the runtime that suits it, and the boundary between tiers is documented rather than improvised.
The question worth asking is not whether your platform is the right one. It is whether every integration currently running on it needed to be there, and whether the ones your engineers built elsewhere were an accident or an architecture.