Skip to content
Let’s Talk(888) 666-8625 DocumentationDocsBlogContact
Core concepts/Adapters

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 Art2link ESB 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 Art2link ESB names adapters (Listener on the receive side, Caller on the send side) and how it handles scheduling (a separate Scheduler adapter rather than per-adapter polling).


Adapters are configured on either a receive port or a send port, and Art2link ESB's architecture rule is that the adapter's name signals where it belongs:

SideSuffixWhat the adapter does
Receive portListenerListens for an external system to initiate - an HTTP request, a schedule firing, a queue message arriving. The adapter brings the message into the bus.
Send portCallerReaches out to an external system on the integration's behalf - calls an API, writes to a database, drops a file, sends a mail. The adapter takes a message off the bus and dispatches it.

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

Why the distinction matters. Receive and send are two different jobs even when the underlying protocol is the same. A Listener has to expose an endpoint and accept inbound connections; a Caller has to reach out and manage retries, timeouts, and response handling. Splitting them lets each adapter focus on its actual role rather than carrying half-used configuration for the other direction.

Whether an adapter is intended for the receive side, the send side, or both - and whether it can run one-way only or also two-way - is decided adapter by adapter. There is no universal rule.

PropertyHow it is decided
Side - receive vs. sendSome adapters only make sense on one side (a Scheduler can only sit on a receive port; an O365 Mail Sender can only sit on a send port). Others naturally exist on both sides as separate adapters - an API Listener on the receive port, an API Caller on the send port.
Mode - one-way vs. two-wayTwo-way mode requires the adapter to hold a synchronous channel open and deliver a response - the API Listener is the textbook example. Adapters that are inherently fire-and-forget - the Scheduler, mail send, file drop, queue enqueue - are one-way only.
i
The Ports articles describe the consequence. Two-way modes on receive and send ports are both gated by the adapter's capability - see the notes in Receive port and Send port on which adapter shapes can hold a two-way conversation open.

BizTalk historically embedded scheduling into receive-side transport adapters - the SQL adapter on a receive location, for example, carries its own polling interval. Art2link ESB does not repeat that pattern. Scheduling is factored out into a single, purpose-built adapter that every other adapter can be triggered by.

The Scheduler adapter is a one-way receive adapter. You configure the schedule (interval, cron-style timing, the other features that come with a dedicated triggering adapter) once on a receive port, 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.

BizTalk SQL polling, restated in Art2link ESB terms. What used to be a SQL receive location with a polling interval becomes two ports in Art2link ESB: 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
Adapters that could be scheduled stay unscheduled. If a transport could plausibly support polling on its own (databases, file pickups, queues), Art2link ESB still does not bake scheduling into the transport adapter. Use the Scheduler adapter and route to the relevant Caller. The architectural rule is one transport concern per adapter.

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 when those guides ship) lives in this article's catalogue below.

The catalogue grows with customer demand - new adapters are prioritised by what the deployments in flight need first. The current set:

AdapterSideStatus
SchedulerReceiveShipping
API ListenerReceiveShipping
SQL CallerSendShipping
API CallerSendShipping
O365 Mail SenderSendShipping
SFTP CallerSendShipping
MQ SeriesBeta
Service BusBeta
File ShareBeta
Azure BlobBeta
Receive Scheduler adapter

One-way receive adapter that fires on a schedule and publishes a triggering message to the bus. This is the building block that replaces per-adapter polling everywhere else - configure the timing on the Scheduler's receive port, route the firing message to whichever send port should run, and the work happens there. Inherently one-way: the adapter has nothing to wait for.

Receive API Listener adapter

Hosts an HTTP endpoint that external systems call into. The textbook two-way receive adapter: it can run one-way (accept the request, publish to the bus, return immediately) or two-way (hold the caller's connection open, wait for a matching response message on the bus, deliver it back synchronously). The two-way subscription expression on the receive port is what lets the response find its way back to the original request.

Send SQL Caller adapter

Send-side adapter that runs queries against a SQL database. Pairs with a SQL Authentication holding the connection string. Common pairing: a Scheduler receive port routes a firing message to a SQL Caller send port, which queries the database, and the result re-enters the bus - effectively the Art2link ESB equivalent of BizTalk's polling SQL receive location.

Send API Caller adapter

Send-side counterpart to the API Listener. Reaches outbound to an HTTP endpoint, dispatches the message, and (in two-way mode) handles the response and republishes it back to the bus.

Send O365 Mail Sender adapter

Sends email through Microsoft 365 / Exchange Online. One-way by nature - once a mail is dispatched there is no synchronous response to wait on.

Send SFTP Caller adapter

Sends files to an SFTP server. Pairs with an SFTP Authentication carrying host, credentials, and key material.

MQ Series adapter Beta

IBM MQ integration. In active development - receive vs. send role and supported modes will be confirmed when the adapter ships.

Service Bus adapter Beta

Azure Service Bus integration. Receive vs. send role and supported modes TBD.

File Share adapter Beta

SMB / network file share integration. Receive vs. send role and supported modes TBD.

Azure Blob adapter Beta

Azure Blob Storage integration. Receive vs. send role and supported modes TBD.

i
Per-adapter configuration guides are still in progress. The blurbs above describe each adapter's purpose; the field-level configuration reference (what a port exposes for each adapter, what its Authentication carries) is being written and will be added to this article as each adapter's guide is finalised.

The shape of an adapter

One transport concern per adapter, named by the side it belongs on (Listener for receive, Caller for send), paired with the matching Authentication, and triggered - when scheduling is involved - by routing through the Scheduler rather than baking timing into the transport itself.