Cloud Integration (CPI): Architecture and Use

- Cloud Integration is the iPaaS workhorse of SAP Integration Suite: a multi-tenant Apache Camel runtime on BTP Cloud Foundry that runs iFlows, ships with 70+ adapters, and offers Edge Integration Cell when data has to stay on-prem.
- Maturity is not the question — the question is design discipline: persistence model (JMS vs Data Store vs Variables), idempotency, naming, and which payloads belong inside CPI versus an event mesh upstream of it.
- Year-two cost is dominated by message volume billed in 250 KB increments per outbound message — splitter outputs, retries, and request-reply replies all count. Size for year-two traffic, not for go-live, or your steering committee finds out the hard way.
Where This Article Sits
| ID | Title |
|---|---|
| BTP-A01 | SAP Integration Suite Overview |
| BTP-A02 | Cloud Integration (CPI): Architecture and Use (this article) |
| BTP-A03 | API Management: Architecture and Use |
| BTP-A04 | Event Mesh: Architecture and Use |
| BTP-A05 | Open Connectors: Architecture and Use |
| BTP-A06 | B2B Integration (1): Trading Partner Management |
| BTP-A07 | B2B Integration (2): Integration Advisor |
| BTP-A08 | Integration Suite: Use Cases and Decision Patterns |
References
| Resource | URL |
|---|---|
| Feature Scope Description for SAP Integration Suite (PDF, 2025-09-04) | help.sap.com → |
| Getting Started with Integration Flow Development | help.sap.com → |
| Connectivity (Adapters) | help.sap.com → |
| Data Store, Variables, and JMS Queues — When to Use Which | help.sap.com → |
| Hybrid Deployment Using Edge Integration Cell | help.sap.com → |
1) The Cloud Integration Landscape

Cloud Integration — historically called CPI — is the process integration capability of SAP Integration Suite. It runs on SAP BTP Cloud Foundry with regions on AWS, Microsoft Azure, and Alibaba Cloud (the Feature Scope Description for SAP Integration Suite confirms Cloud Foundry as the only standard environment, and notes EU-Access contracts cannot use Cloud Foundry outside EU operators). Underneath, CPI runs an Apache Camel routing engine: every iFlow you draw compiles down to Camel routes that the runtime nodes execute (the architecture is summarized in third-party walkthroughs such as Vikas Sharma’s core architecture series).
| Building block | What it does | Primary designer |
|---|---|---|
| Adapters / channels | Sender + receiver protocol bindings: 70+ in the FSD, covering SAP, hyperscaler, messaging, B2B, file, DB, SaaS | Integration developer |
| Process steps | Mapping, content modifier, router, splitter, gather, parallel multicast, scripting (Groovy/JS), exception subprocess | Integration developer |
| Persistence | Data Store, Variables, JMS Queues — three different durability models for three different needs | Integration architect |
| Security material | Keystore (X.509 client certs + roots), OAuth2 credentials, Basic auth secrets, SAML Bearer keys | Integration / security admin |
| Operations layer | Tenant Management Node (TMN) + worker nodes, monitoring, transport via SAP Cloud Transport Management Service (CTMS) | Integration ops |
They are not substitutes.
2) How It Connects to S/4HANA

SAP Integration Suite — Cloud Integration tenant (BTP CF)
┌──────────────────────────────────────────────────────────────────────┐
│ Tenant Management Node (TMN) │
│ ─ design-time, deployment, monitoring, keystore │
│ │
│ Worker nodes (JVM × N, Apache Camel) │
│ ─ iFlow execution: adapter ↔ steps ↔ adapter │
│ ─ JMS queues, Data Store, Variables (per-tenant) │
└──────┬─────────────────────────┬──────────────────────────┬──────────┘
│ IDoc / RFC / OData │ OData / REST │ XI / SOAP / file
▼ ▼ ▼
┌──────────────┐ ┌────────────────┐ ┌──────────────┐
│ S/4HANA │ │ S/4HANA │ │ Trading │
│ on-premise │ │ Cloud (public/ │ │ partners │
│ via SAP │ │ private) │ │ (AS2/AS4) │
│ Cloud │ └────────────────┘ └──────────────┘
│ Connector │
└──────────────┘For on-premise S/4HANA, the RFC and IDoc adapters require SAP Cloud Connector as the secure tunnel back to the customer landscape; the FSD documents NetWeaver 7.31 as the supported floor. For S/4HANA Cloud, OAuth 2.0 against a published OData service is the standard pattern, and the OAuth2 Client Credentials flow is supported on the AMQP/WebSocket, OData V2, OData V4, and HTTP receiver adapters per SAP Help on secure authentication methods. Where data residency or low-latency local-system access is required, the same iFlows can be deployed instead to Edge Integration Cell — the customer-managed Kubernetes runtime described in Hybrid Deployment Using Edge Integration Cell.
Key point: Cloud Integration is the routing-and-transformation layer on top of BTP. The reachability of your S/4HANA endpoint depends on Cloud Connector, the adapter, and (for hybrid) Edge Integration Cell — not on the Cloud Integration tenant itself.
3) Maturity Map

| Capability | Maturity | Notes |
|---|---|---|
| iFlow runtime (Apache Camel on Cloud Foundry) | ✅ Production-ready | Multi-region (AWS/Azure/Alibaba), AES-256 per-tenant keys, up to 4 zero-downtime upgrades/year per the FSD. |
| Adapter set (70+) | ✅ Production-ready | SAP, hyperscaler, messaging, B2B, file, DB, SaaS — listed in the Feature Scope Description. Some niche endpoints still need custom Groovy. |
| EDI processing (EDIFACT/EANCOM/X12) | ✅ Production-ready | EDI Splitter + XML/EDI converters per the FSD; pairs with Trading Partner Management for full B2B. |
| Persistence (JMS / Data Store / Variables) | ✅ Production-ready | Three options, three semantics. SAP publishes a decision page. Misuse is the most common quality finding. |
| Idempotent Process Call | ✅ Production-ready | Documented deduplication step ( SAP Help). At-least-once is the default delivery guarantee. |
| Edge Integration Cell (hybrid) | ⚠️ Ready with prerequisites | Requires customer-owned enterprise Kubernetes (SUSE Rancher, OpenShift, EKS, AKS, GKE). Sized case-by-case; node sizing not in public docs. |
| Transport via CTMS | ✅ Production-ready | Documented promotion path between tenants ( SAP Help); supports package and artifact-level transport. |
4) Requirements Checklist
One sub-table per design domain. Every row must be decidable at requirements stage — implementation detail comes later.
Adapters and connectivity

| Checklist item | Why it matters |
|---|---|
| Source/target systems and adapters confirmed against the FSD’s 70+ adapter list | An unsupported endpoint forces custom Groovy or a third-party connector — different cost class, different support model. |
| Cloud Connector required? (any on-premise SAP via RFC/IDoc) | Without Cloud Connector, on-prem reachability fails. Allocate a Cloud Connector instance and pre-define location IDs. |
| Authentication method per receiver (Basic / OAuth2 Client Credentials / OAuth2 SAML Bearer / Client Cert) | Receiver adapter support varies. AMQP/WebSocket, OData V2/V4, and HTTP support OAuth2 Client Credentials; OData V2, HTTP, and SuccessFactors OData V2 support SAML Bearer. |
| Inbound auth model for callers (mTLS / OAuth2) | Determines whether to provision an SAP-generated certificate, role assignment (ESBMessaging.Send), and which security material to deploy. |
| Network egress allow-list captured | iFlows calling external SaaS need outbound connectivity — corporate egress proxies and IP allow-lists frequently cause go-live delays. |
Persistence and reliability

| Checklist item | Why it matters |
|---|---|
| Per-interface delivery semantics declared (fire-and-forget / at-least-once / exactly-once) | Drives whether you need JMS, Data Store, or no persistence; drives whether the consumer must be idempotent. |
| Persistence choice mapped per interface (JMS queue / Data Store / Variables / none) | JMS = native retry on exception. Data Store = explicit reprocessing UI. Variables = small state only, not payload. |
| Retry budget defined (max attempts, backoff, dead-letter destination) | JMS uses SAPJMSRetries; Data Store uses SAP_DataStoreRetries. Without an explicit budget, retries either loop forever or stop at the default and surprise ops. |
| Idempotency mechanism per interface (Idempotent Process Call vs target-side dedup) | Default delivery is at-least-once; without dedup, duplicates leak into the receiving system. |
| DLQ / failure routing decided | Manual reprocessing UI? Email alert? Ticket? Without this, failed messages accumulate quietly. |
Security and credentials

| Checklist item | Why it matters |
|---|---|
| Keystore contents listed (client certs, root certs, lifetimes) | Cert expiry is the most common silent failure. Capture renewal owner and date for each entry. |
| OAuth2 credentials inventoried (client ID/secret, scope, token URL) | Stored as Security Material; rotation procedure should exist before go-live. |
Role assignment plan (ESBMessaging.Send, Auth-Group.Administrator, etc.) | OAuth clients without the right role get HTTP 401/403 at runtime — usually discovered during cutover, not testing. |
| Sensitive payload masking decided | Logging at trace level shows full payloads. Compliance teams need to sign off on what gets logged. |
Operations and transport

| Checklist item | Why it matters |
|---|---|
| Tenant topology (DEV / QAS / PROD count and roles) | All tenants are billed independently — non-prod is not free. Three tenants is the typical minimum. |
| CTMS configured before first iFlow promotion | Setting up CTMS retroactively after artifacts are scattered across tenants is painful. |
| Naming convention adopted before first iFlow | SAP publishes a Naming Conventions page; retrofit is genuinely painful and breaks monitoring filters. |
| Monitoring and alerting (failed messages, queue depth, cert expiry) | The Monitor view is built-in but does not page anyone — alerts need to be wired to Discord/Teams/email/incident system. |
| Edge Integration Cell decision (in scope or not) and Kubernetes ownership | If EIC is in play, the customer must own a production-grade Kubernetes platform; that is a separate project, not a CPI subtask. |
5) Decision Criteria
The three questions to ask first

Q1. Is there a measurable, recurring volume of message-based integration work between distinct systems that current point-to-point or batch jobs can’t keep up with?
If the answer is “we have two interfaces, one runs nightly, both work” — Cloud Integration is overkill. Cloud Integration earns its license cost when there are at least a handful of interfaces, ongoing change, and operational SLAs that exceed what cron-job batch processing can deliver.
Q2. Where does the data live, and is it allowed to traverse a public-cloud iPaaS?
Data residency drives Cloud Foundry region choice — and, if regulatory rules forbid cloud transit at all, it pushes the runtime to Edge Integration Cell. EIC is not a cheaper CPI; it is a different operational model where the customer owns the Kubernetes platform.
Q3. Who owns the integration interface in the org chart, and do they have the budget to fund both build and runtime?
Cloud Integration runtime cost is dominated by message volume in 250 KB increments per outbound message. Without a budget owner who tracks year-two volume, projects under-size and re-negotiate mid-fiscal-year.
Domain selection by project context

| Project context | Recommended starting point |
|---|---|
| 1–2 simple SAP-to-SAP interfaces, low change rate | Skip Cloud Integration. Use the Communication Arrangement / direct OData call. |
| Multi-system synchronous transformations (mapping, routing) | Cloud Integration on Cloud Foundry, single tenant per environment. |
| High-volume async with durable queues (purchase orders, invoices) | Cloud Integration with JMS queues; pair with Idempotent Process Call. |
| Real-time pub/sub fan-out (S/4HANA business events) | Event Mesh in front of Cloud Integration, not Cloud Integration alone. |
| B2B / EDI (EDIFACT, X12, AS2) | Cloud Integration with EDI Splitter + Trading Partner Management. |
| Strict data residency / on-prem-only execution | Edge Integration Cell on customer-managed Kubernetes. |
| Quick non-SAP SaaS connection (Salesforce, ServiceNow) | Open Connectors fronted by Cloud Integration. |
| No clear pain point identified yet | Stop. Go back to Q1. |
Licensing and cost

| Concern | Model | Key question to ask |
|---|---|---|
| Subscription (Starter / Standard / Premium) | Tenant-based; baseline messages included | What is the year-two outbound message count, broken down by 250 KB chunks? |
| CPEA / BTPEA (consumption) | Credit pool across BTP services | What are the other BTP services in this contract, and is a $100K+ minimum justified? |
| Pay-As-You-Go | Per-message billing, no minimum | Is this a pilot or a pre-production scenario? PAYG breaks even against Subscription only at low volumes. |
| Edge Integration Cell traffic | Charged at 50% of standard message rates | Are the EIC volumes large enough to materially offset the Kubernetes operational cost? |
The single most-missed billing rule: outbound messages are counted, per 250 KB, with splitter outputs and retries each charged. Standard, unmodified SAP Integration Content (SAP-to-SAP) and the internal ProcessDirect and JMS adapters are exceptions — but ProcessDirect extensions of standard content are not (per the message traffic licensing analysis at
integration-excellence.com).
6) Common Failures

Failure 1: Sized for go-live, not year-two
The first 60 days after go-live are not representative. New interfaces get added, splitter-heavy iFlows multiply outbound message counts, and retry storms during incident periods consume the included message bucket. Capture year-two projected volume in the requirements phase and budget for it explicitly.
Failure 2: ProcessDirect billing exception inverted
The internal ProcessDirect adapter is not billed — except when it calls a customer extension of standard SAP Integration Content. Teams reading the rule too quickly assume “all ProcessDirect is free” and discover the bill after extending shipped iFlows. Read the licensing terms before extending standard content.
Failure 3: No idempotency designed in
Cloud Integration’s default delivery is at-least-once. Without an Idempotent Process Call (or target-side dedup), duplicates land in the receiver during retry storms — and the duplicate creates a downstream incident weeks later, far from the original cause. Idempotency is a requirements-stage decision, not a fix.
Failure 4: JMS retry and Data Store retry mixed in the same flow
JMS does retry natively via SAPJMSRetries. Data Store retry is explicit, controlled by the designer via SAP_DataStoreRetries. Mixing them in one iFlow — typically because two team members designed parts of it — produces flows that retry twice, lose messages, or block on poison pills. Pick one persistence-and-retry model per interface and document it.
Failure 5: Cloud Connector dependency overlooked
On-premise S/4HANA via RFC/IDoc requires SAP Cloud Connector. Architecture diagrams that draw a line directly from CPI to on-prem ECC produce go-live cutover delays as the customer scrambles to install Cloud Connector with the right NetWeaver patch level. Treat Cloud Connector as a separate dependency, not an implementation detail.
Failure 6: Naming convention chosen after deployment
Without a naming standard from day one, monitoring filters break, transport packages mix unrelated artifacts, and the runbook lists 200 iFlows by random names. SAP publishes a Naming Conventions page; pick a scheme on day one and enforce it via package-level review. Retrofitting names across a live system is genuinely painful.
FAQ
Q: Does Cloud Integration replace SAP PI/PO?
For new projects, yes — SAP positions Cloud Integration as the forward platform, and even publishes a Migration Assessment capability for moving SAP Process Orchestration 7.5 content into Integration Suite. For existing PI/PO landscapes, the replacement is a project, not a switch: adapters, mapping styles, and operational habits differ enough that “lift and shift” is rarely accurate.
Q: When should I use Edge Integration Cell instead of standard Cloud Foundry deployment?
When data residency, compliance, or latency requirements forbid the data leaving the customer’s network. EIC is the on-prem / private-cloud runtime and runs the same iFlow artifacts; design and monitoring still happen in the BTP cloud tenant. EIC requires customer-owned enterprise-grade Kubernetes (SUSE Rancher, OpenShift, AKS, EKS, GKE per the SAP Architecture Center reference), so its operational model is fundamentally different from cloud-only CPI.
Q: How are messages billed exactly?
Per outbound message, in 250 KB increments. A 100 KB message = 1 charge. A 2 MB message = 9 charges. A splitter producing 50 outputs = 50 charges. Retries count each time. Standard SAP-to-SAP content and internal ProcessDirect / JMS adapter calls are exceptions; ProcessDirect extensions of standard content are not exceptions.
Q: How do I choose between JMS, Data Store, and Variables?
JMS for asynchronous queue-based interfaces with native retry — use when you need backpressure and the platform itself should retry. Data Store for explicit lifecycle: scheduled consumers, manual reprocessing UIs, batch handoffs. Variables for small per-tenant state only — last successful timestamp, last successful primary key — never for payload bodies. The official SAP Help decision page is the canonical reference.
Q: When should I descope Cloud Integration from a project?
When the integration footprint is one or two interfaces and there is no roadmap to grow it. The fixed cost of a Cloud Integration tenant — Subscription baseline plus three environments (DEV/QAS/PROD), all of which are billed — is hard to justify for a single nightly OData call. In that case, a direct Communication Arrangement or a small custom service is more honest.
Q: How do I document an interface requirement properly so an integration developer can build it?
For each interface, capture: source system + endpoint, target system + endpoint, action verb (create/update/delete/replicate), business object (sales order, business partner, etc.), trigger (schedule / event / synchronous call), expected volume per day and per peak hour, average and 95th-percentile payload size, delivery semantics (fire-and-forget / at-least-once / exactly-once), and idempotency rule on the target. That is enough to estimate message billing, persistence choice, and adapter selection.
Q: Are non-production tenants free?
No. All tenants — DEV, QAS, PROD — are billed for messages independently. Some teams forget this and discover that load tests against QAS consumed half of their monthly message bucket. Plan test data volume accordingly.
Q: How do I move iFlows between tenants?
Use SAP Cloud Transport Management Service (CTMS), with the Content Agent Service as the bridge. CTMS supports package-level and individual artifact-level transport. Set it up before the first promotion; doing it after artifacts are scattered across tenants is painful and risks lost configuration.
Summary
Cloud Integration is mature, well-documented, and will not surprise you architecturally — Apache Camel on a multi-tenant runtime, with seventy-plus adapters and three persistence models per the Feature Scope Description — but it will surprise you commercially if you treat year-two volume as an afterthought. The consultant’s job is to ask the three questions before drawing the first iFlow, pick one persistence-and-retry pattern per interface, decide whether the workload belongs on standard Cloud Foundry or on Edge Integration Cell, and capture a naming convention before any artifact is deployed. Everything else — adapters, mappings, OAuth flows — is implementation detail that the integration developer can handle if those four decisions are clean.
What to Read Next
| ID | Category | Component | Scope |
|---|---|---|---|
| BTP-A01 | Overview | SAP Integration Suite | Capabilities, Components, and When to Use Each |
| BTP-A02 | Process Integration | Cloud Integration (CPI) | Architecture and Use (this article) |
| BTP-A03 | API Layer | API Management | Architecture and Use |
| BTP-A04 | Eventing | Event Mesh | Architecture and Use |
| BTP-A05 | SaaS Connectivity | Open Connectors | Architecture and Use |
| BTP-A06 | B2B | Trading Partner Management | B2B Integration (1) |
| BTP-A07 | B2B | Integration Advisor | B2B Integration (2) |
| BTP-A08 | Decision | Integration Suite | Use Cases and Decision Patterns |