Skip to content
iQBus HomeDocumentationBlogContact
Updated September 28, 2026
Adapters/Overview

Adapters

The boundary object between a port and an external system, the same role BizTalk adapters and Logic Apps connectors play. Configured on the port, named by intent (Listener for receive, Caller for send), and direction-aware by design.

An Adapter in iQBus handles the protocol-specific work of moving a message between a port and the system on the other side of the wire. The receive port's stage 1 and the send port's stage 5 are both the Adapter, the only stage that is always present in either direction. Everything else (variable assignments, pipelines, maps) is optional; the adapter is what makes a port reach an actual endpoint.

Adapters are configuration-only: switching the transport on an existing port is a property change on the adapter binding, not a redeploy. Pair an adapter with the right Authentication and the runtime resolves the connection at execution time.

If you have used BizTalk adapters or Logic Apps connectors, the mental model carries over almost unchanged. An adapter is the unit that knows how to talk to a specific kind of system, HTTP, SQL, SFTP, a mail server, a queue, and it is the unit you bind to a port to make that conversation happen.

The differences are in two places only, both covered below: how iQBus names adapters (Listener on the receive side, Caller on the send side) and how it handles scheduling (a separate Scheduler adapter for most transports, with the three file Listeners owning their own interval).


Adapters are configured on either a receive port or a send port, and iQBus's architecture rule is that the adapter's name signals where it belongs, a Listener suffix on the receive side, a Caller suffix on the send side. The same underlying protocol becomes two different adapter objects because listening and calling are two different jobs:

SAME PROTOCOL HTTP RECEIVE SIDE Listener External ADAPTER · API LISTENER Exposes an endpoint accepts inbound connections Brings a message into the bus SEND SIDE Caller ADAPTER · API CALLER Reaches outbound manages retries & response Endpoint Takes a message off the bus

That is why the receive-side HTTP adapter is called API Listener rather than just API, and the send-side counterpart is the API Caller. The two are different adapters; one listens, one calls.


Whether an adapter is intended for the receive side or the send side, and what kind of response it naturally produces, is decided adapter by adapter. The matrix below plots each shipping adapter into the cell that describes its natural shape. A practical wrinkle on the send side: every send port can be configured in two-way mode regardless of which adapter is bound; what varies is whether the response carries the adapter's real payload, or only an empty acknowledgement that lets the integration thread continue downstream.

ONE-WAY adapter has no payload response TWO-WAY adapter returns a real payload RECEIVE Listener side Scheduler File Share Listener SFTP Listener Azure Blob Listener Nothing to wait on. Each publishes and moves on. API Listener Holds the caller's connection open for a synchronous reply. SEND Caller side O365 Mail Sender File Share Caller SFTP Caller Azure Blob Caller No payload of its own, only an echo of what was sent. SQL Caller API Caller Real payload returned to the bus. A 2-way send port works with any send adapter, column placement only tells you whether the response carries the adapter's payload or just an echo of what was sent.
i
The Ports articles describe the consequence. Two-way mode on a receive port is gated by the adapter's capability, only adapters that can hold a synchronous connection open qualify.

BizTalk historically embedded scheduling into receive-side transport adapters, the SQL adapter on a receive location, for example, carries its own polling interval. iQBus factors scheduling out into a single, purpose-built adapter that any other adapter can be triggered by. The exception is the three file Listeners, which own their own polling interval, for the reason given below.

The Scheduler adapter is a one-way receive adapter. You configure the cadence (repeat every N seconds / minutes / hours / days) once on a receive port, optionally gate it by a date range and a daily clock-time window, and the firing message it produces is published to the bus. From there, any send port subscribed to that message picks it up and runs its adapter:

RECEIVE PORT Scheduler on tick Bus MT: FIRE_TICK SEND PORT · SQL CALLER Run scheduled query against a database subscribes: MT == "FIRE_TICK" SEND PORT · API CALLER Pull a partner endpoint on the same schedule subscribes: MT == "FIRE_TICK" SEND PORT · SFTP CALLER Drop a recurring report file subscribes: MT == "FIRE_TICK" SEND PORT · O365 MAIL SENDER Send a periodic digest email subscribes: MT == "FIRE_TICK" One schedule. Any number of destinations. Timing lives in one place; transports stay scheduling-free.
BizTalk SQL polling, restated in iQBus terms. What used to be a SQL receive location with a polling interval becomes two ports in iQBus: a receive port using the Scheduler adapter (which owns the interval) and a send port using the SQL Caller adapter (which actually queries the database). The bus is the wire between them. The split looks like more moving parts at first glance, but the schedule, the query, and the routing each live in the place where they belong, and a single Scheduler can fan out to many send ports without re-implementing scheduling in any of them.
i
Most adapters that could be scheduled stay unscheduled. For a database or a queue, iQBus does not bake scheduling into the transport adapter: use the Scheduler adapter and route to the relevant Caller. File pickup is the exception. The File Share, SFTP and Azure Blob Listeners each carry their own Polling Interval, because a pickup reads the file and deletes it in the same pass, and that pass also has to honour a file count and a byte budget. Splitting that across two ports would put the delete on the far side of the bus from the read.

An adapter does not carry its own credentials. Whatever it needs to reach its endpoint, a connection string, an API key, a certificate, an SFTP key, lives in a separate Authentication object that the adapter references by name.

The pairing is one-to-one at the type level: every adapter type defines exactly one Authentication shape, and an adapter cannot consume an Authentication that belongs to a different adapter type. A SQL Caller adapter pairs with a SQL Authentication, an API Caller adapter pairs with an API Authentication, and so on. The fields each Authentication exposes are determined by its adapter type.

Where to find what. The functional rules of the Authentication object, application scope, reuse, encryption at rest, snapshot behaviour, live in the Authentications article. The per-adapter detail (what the adapter does, what its Authentication carries at the field level) lives in each adapter's own sub-article, see the left-nav sub-items under Adapters.

The shape of an adapter

One transport concern per adapter, named by the side it belongs on (Listener for receive, Caller for send), and paired with the matching Authentication. The detail for each adapter, configuration fields, Authentication shape, worked example, lives in its own article:

Receive-only: Scheduler
Send-only: SQL · O365 Mail · SFTP
Bidirectional: API · Service Bus · File Share · Azure Blob
Enterprise system adapters: MQ Series · SAP · Salesforce · CloudSuite

Enterprise system adapters. Adapters for packaged enterprise systems, such as MQ Series, SAP, Salesforce and CloudSuite, are included in every edition.