Overview
A well designed adapter must include the following runtime capabilities:

Ability to identify, and recover from temporary errors.

Ability to retrieve and manage connections.

Allow the user to dynamically control the type of connection used for each service invocation.