Contents
The TIBCO StreamBase® Adapter for FXall Relationship Trading Provider allows a StreamBase application receive quote requests, publish prices, and accept deals in the FXall Request for Quote (RFQ) trading environment. The StreamBase application acts as the Maker in this environment.
Transactions at FXall are negotiated among several parties and executed between two parties. In both the quoting and negotiation phases, a transaction has two sides: a Customer or Taker who wishes to perform a particular transaction, and a Provider or Maker who responds by offering terms. During the negotiation phase of a transaction, there is one Taker and one or more Makers. During execution there is one Taker and one Maker.
The adapter appears on the EventFlow canvas in StreamBase Studio as two icons, which share a connection to the FXall server. The EventFlow canvas icons for this adapter are:
-
FXall Relationship Trading Provider Input — a StreamBase input adapter that emits tuples in response to FXall-generated events, such as the receipt of quote and trade requests.
-
FXall Relationship Trading Provider Output — a StreamBase output adapter that sends quotes and accepts deals.
Each FXall Relationship Trading Provider adapter icon has its own set of ports, the fields for which are defined later in this document. In addition, each icon has its own properties that configure the connection to the FXall server. The connection properties for each adapter icon must be configured identically to be able to start StreamBase.
The FXall Relationship Trading input adapter icon has no input ports and two output ports. The first output port emits status tuples when the state of the connection to the FXall server changes and when the adapter is suspended or resumed. The second output port emits tuples in FXall-generated events, such as the receive of quote and trade requests.
The FXall Relationship Trading Provider output adapter icon has one input and one output port. The input port is used to send quotes, withdraw previously-sent quotes, accept or reject deals, and chat with the customer who sent the quote or deal request. The output port emits status tuples when the state of the connection to the FXall server changes, when the adapter is suspended or resumed, and when an input tuple is rejected.
A typical interaction with the FXall Relationship Trading Provider adapter is:
-
The input adapter receives a quote request from an FXall customer server and emits a tuple on its event port.
-
The StreamBase application receives the quote request and either accepts it by enqueuing one or more SendQuote tuples to the output adapter's command port or rejects it by enqueuing an AbortQuote tuple.
-
The input adapter receives a deal request from the FXall customer and emits a tuple on its event port.
-
The StreamBase application receives the deal request and either accepts it by enqueuing an AcceptDeal tuple to the output adapter's command port or rejects it by enqueuing a RejectDeal tuple.
-
The input adapter receives a deal completion event and emits a tuple on its event port.
Property | Description |
---|---|
FXall URL | The URL used to connect to the FXall server. |
User Name | The username for logging in to the FXall server. |
Password | The password for logging in to the FXall server. |
Certificate Directory | The absolute path of the directory containing the FXall keystore files. |
Reconnect Interval | The time, in seconds, between attempts to (re)connect the FXall server. |
Set Requirement Maker IDs | Expect a RequirementMakerIds field in the command port schema used to populate the Maker ID of each requirement of each leg during SendPickup commands. |
Connect at Startup | Select this check box to have the adapter connect to the FXall server at startup. The command port can be used after startup to connect or disconnect. |
Verbose Reconnection | An information message is logged each time a reconnection attempt fails. |
Enable Send Quote Time Instrumentation | When actively quoting, periodically log the average time spent in the call to the FXall API SendQuote() method. |
Log XML Messages at INFO Level | Select this check box to have the input/output adapter log incoming/outgoing XML messages at INFO rather than DEBUG level. |
Default Quote Time To Live (FXall output adapter only) | The time, in seconds, for quotes to live, if not overridden by the corresponding value in a SendQuote tuple.
|
Log Level | Controls the level of verbosity the adapter uses to send notifications to the console. This setting can be higher than the containing application's log level. If set lower, the system log level is used. Available values, in increasing order of verbosity, are: OFF, ERROR, WARN, INFO, DEBUG, TRACE, and ALL. |
Use Custom Order Schema (FXall input adapter only) | Select this check box to specify a custom schema with which to emit order tuples on the event port. |
Custom Order Schema (FXall input adapter only) | Specifies the custom schema with which to emit order tuples on the event port. |
This section describes how to use the FXall Relationship Trading Provider adapter in a StreamBase application. As shown in this adapter's sample application, the adapter appears as two icons on the EventFlow canvas.
Note
In this adapter's sample application, the some of the adapters' input and output ports are connected directly to externally-visible input and output streams. However, in more complex applications these ports will typically be connected to internal StreamBase operators.
Add an instance of the adapter to a new StreamBase EventFlow application as follows:
-
In StreamBase Studio, create a project, including an empty StreamBase EventFlow application file to host the adapter.
-
From the Operators & Adapters drawer, drag an FXall Relationship Trading Provider Input adapter to the canvas.
-
From the Operators & Adapters drawer, drag an FXall Relationship Trading Provider output adapter to the canvas.
-
Select the Parameters tab at the bottom of the EventFlow editor. In the Parameters tab, create parameters named
fxall_url
,fxall_username
,fxall_password
,fxall_certificate_directory
,fxall_reconnect_interval
, andfxall_quote_time_to_live
. Enter your site-specific values for each parameter. -
Select the Editor tab at the bottom of the EventFlow editor.
-
Select the FXall Relationship Trading Input adapter icon, and in the Properties view, select the Adapter Settings tab.
-
Enter
${fxall_url}
,${fxall_username}
,${fxall_password}
,${fxall_certificate_directory}
, and${fxall_reconnect_interval}
in the corresponding text entry box for each parameter. -
Repeat the previous two steps for the FXall Relationship Trading Provider output adapter adapter icon, including the
fxall_quote_time_to_live
parameter as well. -
Connect Input and Output Streams to the adapters' input and output ports.
-
Configure the schemas of the input stream with the fields listed in the section below that describe the output adapter's input port. Note that the output adapter will generate typecheck errors when the input stream is missing required fields, when unexpected fields are present, or when fields are of the wrong type. TIBCO recommends you start with the FXall Relationship Trading Provider adapter sample as the basis for creating your application, since it already has the input schema defined.
The FXall Relationship Trading Provider adapter suite consists of an input and output adapter. Each adapter has a specific set of ports to communicate with the surrounding application. As with other StreamBase adapters and operators, you can optionally enable an Error Output Port, as described in Using Error Ports and Error Streams.
The FXall Relationship Trading input adapter emits tuples in response to events received from the FXall server, such as the receipt of quote requests, deal requests, and completed deals. It has no input ports and two output ports:
FXallInputStatus: The input adapter emits tuples on this port in response to important adapter events such as connection transitions and adapter suspend and resume activity.
-
type, string: the type of event:
-
Connection
-
ConnectionStatus
-
SuspendResume
-
-
action, string: the action associated with the event:
-
Up — Connection to FXall server is up
-
Down — Connection to FXall server is down
-
Suspending — Adapter is being suspended
-
Resumed — Adapter has been resumed
-
-
object, string: the connection information when a connection goes up or down, or the adapter icon name when the adapter is suspended or resumed.
-
message, string: a human-readable version of the event.
FXallEvents: Tuples are emitted on this port when events are received from the FXall server.
-
EventType, string: the type of FXall event received. Zero or more additional FXallEvents fields are populated based on the event type.
-
AcceptTermsAck — the FXall server acknowledges receipt of a previous SendAcceptTerms request for a resting order (NOT YET SUPPORTED).
Related fields: FXallId
-
ChatMessage — an in-deal chat message has been received from the Taker.
Related fields: FXallId, ChatMessage
-
CustomerLatencyReport — periodically delivers the most recent latency report for currently active customers.
Related fields: LatencyData
-
DealCompleted — FXall has completed and stored a trade.
Related fields: Completed, Order
-
DealRequest — the taker wishes to execute a trade.
Related fields: FxallId, Order
-
InfoRequest — the FXall system requests information on a deal from the Maker's System.
Related fields: FxallId, InfoRequestType, InfoRequestArgument
-
LatencyReport — periodically called to deliver the most recent latency report for the adapter's connection to FXall.
Related fields: LatencyData
-
PostTradeRequest — delivers a post-trade allocation report for splits.
Related fields: Order
-
QuoteAck — the Taker acknowledges receipt of a quote.
Related fields: FxallId
-
QuoteRequest — the remote system requests a quote on the order supplied.
Related fields: FxallId, Order, LatencyData
-
QuoteRequestWithdrawn — a trade has terminated unsuccessfully.
Related fields: FxallId, Order
-
-
FxallId, string: the unique ID generated by FXall when the deal was submitted.
-
ChatMessage, string: the contents of the chat message received from a provider.
-
Completed, bool: true if the deal was successfully processed and false otherwise.
-
InfoRequestType, string:
-
STATUS: requests the status of the trade identified on the request
-
UNKNOWN: undefined InfoRequestType, reserved for backwards compatablity
-
-
InfoRequestArgument, string: additional information required by the request type. For CInfoRequestType.STATUS, contains the FXall ID of the order.
-
Order, tuple: the order submitted by the customer (taker). The order tuple has the schema described in the table below. The order tuple schema can be overridden using the Custom Order Schema property.
-
LatencyData, tuple: the most recent latency report for this connection to FXall. The latency data tuple has the schema described in the table below.
-
CustomerLatencyData, list(tuple): the most recent latency report for currently active customers. Each customer latency data tuple has the schema described in the table below.
The order tuple has the following schema:
Field Data Type Description AutoTradable bool Indicates that order is most likely priced by an auto-pricing system. DealDate string The FX date (YYYYMMDD) the order was created. DealRemarks list(tuple) Zero or more remarks associated with the deal. Each deal remark has the following fields: -
DealRemarkLines, list(string): up to ten deal remark strings associated with the order.
DealTime string The FX time (HHMMSS) the order was created. ExecOnSpot bool True if the order is in the first stage of a Spot-n-Roll Order and false otherwise. Fee string The fee associated with this transaction. FeeCurrency string The currency of the fee associated with this transaction. FixingOrderDetails tuple The fixing order details of the order. The fixing order details tuple has the schema described in the table below. FXallId String The ID of the order within the FXall System. InCompetition bool True if the quote request for this order was submitted to multiple Makers and false otherwise. Instrument string The Instrument this order relates to. InstrumentOrders list(tuple) One or more more instrument orders associated with the order. Each instrument order tuple has the schema described in the table below. IsMbeOrder bool True if this is a multi-bank execution order and false otherwise. MakerGroupName string The name of the group to which the Maker that priced the Order belongs. MakerId string The ID of the order within the Counterparty (Maker's) Electronic Trading System. MakerInstitution string The institution to which the Maker belongs. MakerLocation string The location of the Maker that priced the Order. MakerName string The name of the Maker that priced the Order. MakerOrderConfirmation string A confirmation of (or reference to) the completed deal within the Maker's back-office system. MakerOrderCustom string Field for custom-use by the Maker. MakerOrderReference string A reference to the order within the Maker's back-office system. NonNegotiated bool True if the order was negotiated and false otherwise. NumCompetitors int The number of competitors in this deal. OrderBatchCount int The number of orders in the batch. OrderBatchId int The ID of the batch containing this order. OriginalFXallId string The FXallId of the original deal on which this Order represents Splits / Rolls, and so on. OriginalMakerId string The MakerId of the original order on which this Order represents Splits / Rolls, and so on. OriginalTakerId string The TakerId of the original deal on which this Order represents Splits / Rolls, and so on. OtdVariant string The Offer-to-Deal type on this order: AT_BEST
,AT_QUOTE
,MARKET
, orNO_WORSE
.PrimeBrokerTaker string The Prime Broker's Taker ID. Protocol string The trading protocol that used to negotiate this deal: CLASSIC_RFQ
,FIXING_ORDER
,QUICK_FILL
,QUICK_TRADE
, orRESTING
.ServerMatched bool True if FXall matches the Offer to Deal with the current quote at FXall to complete the deal and false otherwise (NOT YET SUPPORTED). State string The state of the order: COMPLETED or LIVE. TakerGroupName string The name of the group to which the Taker that submitted the Order for trading belongs. TakerId string The ID of the order within the Taker's System. TakerInstitution string The institution to which the Taker belongs. TakerName string The name of the Taker that submitted the Order for trading. TakerOrderConfirmation string A confirmation of (or reference to) the completed deal within the Taker's back-office system. TakerOrderCustom string A field reserved for custom-use by the Taker. TakerOrderReference string The reference to the order within the Taker's back-office system. TruncationOrder bool . The LatencyData tuple has the following schema:
Field Data Type Description LongTerm int The average long-term network round-trip latency for this connection to FXall. MediumTerm int The average medium-term network round-trip latency for this connection to FXall. ShortTerm int The average short-term network round-trip latency for this connection to FXall. Each member of the CustomerLatencyData list has the following schema:
Field Data Type Description CustomerName string The customer's name. LatencyData tuple The round-trip latencies for the customer's connection, as defined in the table above. The FixingOrderDetails tuple has the following schema:
Field Data Type Description FixingDate string The Fixing Date in YYYYMMDD format relative to the FixingTimeZone. FixingSeries string The fixing series. FixingTime string The Fixing Time in HHMMSS format relative to the FixingTimeZone. FixingTimeZone string The Local Fixing Time Zone. GMTFixingDate string The Fixing Date in YYYYMMDD format relative to GMT. GMTFixingTime string The Fixing Time in HHMMSS format relative to GMT. MakerFixingKey string The Fixing Key defined by the Maker for the Fixing Series, Fixing Time and Fixing Time Zone. Each member of the InstrumentOrders list has the following schema:
Field Data Type Description Type string The order type, one of: Spot
,Forward
,Swap
, orBlock
.BaseCurrency string The base currency for the order. TermsCurrency string The terms currency for the order. DealtCurrency string The currency that the amounts are specified in. DealtAmount string The net amount of the dealt currency bought or sold in this order. ContraAmount string The net amount of the contra currency bought or sold in this order. AdditionalCurrencyInfo tuple Returns Additional information for the Emerging Market Currency, as defined in the following table. Legs List(tuple) One or more leg records in the order. Each tuple member of the Legs list has the schema described in the table below. The AdditionalCurrencyInfo tuple has the following schema:
Field Data Type Description BusinessDayConvention string The convention used for adjusting a date if it would otherwise fall on a day that is not a business day. Deliverable bool True if this currency is deliverable and false otherwise. DisruptionFallback string The fallback settlement terms, which gives rise to either an alternative basis for determining the settlement rate or an alternative basis for settling a transaction when a disruption event has occurred. FinancialCenter string The name of the financial center used for fixing. FixingDate string The date of fixing for non-deliverable currency (YYYYMMDD format). FixingReference string The description of the fixing for a non-deliverable currency. FixingTime string The time of the fixing. GoverningLaw string The law to be applied to the agreement. OnShoreMarket bool True if this currency is traded onshore and false otherwise. SettlementCurrency string The currency of settlement. Each member of the Legs list has the following schema:
Field Data Type Description Num int The zero-based number of this leg. TakerBuysBase bool True if the Taker is making a net buy of the base currency for this leg and false otherwise. SpotDate string The Spot Date of all the requirements within this leg. ValueDate string The value date in YYYYMMDD format of this Leg. ValueDateType string The shorthand value date type of all requirements within this leg. DealtCurrency string The currency in which the round amount is specified. DealtAmount string The net amount of the dealt currency bought or sold in this leg. ContraAmount string The net amount of the contra currency bought or sold in this leg. Components list(tuple) One or more cross component pricing record within this FX Leg. Each component record has the schema described in the table below. Requirements list(tuple) One or more requirement records within this FX leg. Each requirement record has the schema described in the table below. FixingDate string The per-leg fixing date. MidRate string The mid rate. Note: In a swap deal if either of the legs require a mid rate then both the legs should have midrate value set. USILeg string The usi value on the leg level. Each member of the Components list has the following schema:
Field Data Type Description Num int The zero-based number of this component. Side string The component side, one of: Bid
orAsk
.CurrencyPair string The currency pair this rate component corresponds to. IndicativeQuote tuple The indicative rates supplied by the Price Maker and viewable by the Price Taker. The schema of the quote tuple has the schema described in the table below. Quote tuple The dealable rates supplied by the Price Maker and viewable by the Price Taker. The schema of the quote tuple has the schema described in the table below. SpotDecimalPlaces int The market convention for the number of decimal places that the spot rate should be quoted to (it may be supplied to a greater precision). FwdPtsDecimalPlaces int The market convention for the number of decimal places that the forward points rate should be quoted to (it may be supplied to a greater precision). FwdPtsCoefficient int The number of decimal places to shift the forward points value before adding it to the spot price in calculating the all-in price. FractionalDecimalPlaces int The market convention for the additional number of decimal places that the spot rate should be quoted to when using fractional pricing (it may be supplied to a greater precision). FractionalFwdPtsDecimalPlaces int The market convention for the additional number of decimal places that the forward points should be quoted to when using fractional pricing (it may be supplied to a greater precision). AllInDecimalPlaces int The market convention for the number of decimal places that the all-in rate should be quoted to (it may be supplied to a greater precision). Each member of the Requirements list has the following schema:
Field Data Type Description Num int The zero-based number of this component. TakerBuysBase bool True if the Taker is buying the base currency and false otherwise. A null value indicates the direction is not being disclosed. Account string The Taker account name. AccountLongName string The Taker long account name. DealtCurrency string The currency that the dealt amount is specified in. DealtAmount string The amount of the dealt currency being bought or sold. ContraAmount string The amount of the contra currency being dealt. MakerCustom string Field for custom-use by the Maker. TakerCustom string Field for custom-use by the Taker. SettlementDetails list(tuple) One or more settlement detail records associated with the requirement. Each settlement detail record has the schema described in the table below. The Quote tuple has the following schema:
Field Data Type Description SpotRate string The Taker spot rate used to calculate the all-in rate. ForwardPoints string The relative Taker forward points (in pips) used to calculate the all-in rate. AllInRate string The Taker all-in (forward) rate. TimeToLive int The time (in seconds) for which this quote is valid (where supported). Reference string The maker's reference for this quote. Size string The quote size, or -1 if the size not set. Each member of the SettlementDetails list has the following schema:
Field Data Type Description Type string The type of settlement instructions to be used: -
Standard — represents standard settlement instructions.
-
Special — represents special, non-standard settlement instructions.
Lines list(string) A list of lines in the settlement details. -
-
LatencyData, tuple: the most recently available network latency report.
-
CustomerLatencyData, list(tuple): the most recently available network latency reports for customers who are currently connected and actively using trading data from this connection.
-
ArrivalTime, long: the value of the system's nanosecond timer upon receipt of the event from the FXall API.
The FXall Relationship Trading Provider output adapter receives quote requests, sends quotes, and accepts or rejects deals. It has one input port and one output port:
Command: Tuples are enqueued on this port to manage the FXall server connection, send quotes, and accept or reject deals.
-
Command, string: the command to be executed by the FXall output adapter:
-
Connect — connects to the FXall server.
Related fields: none
-
Disconnect — disconnects from the FXall server.
Related fields: none
-
Status — queries the status of the FXall server connection. A tuple is emitted on the FXallOutputStatus port with type
ConnectionStatus
and actionUp
orDown
to convey the connection status.Related fields: none
-
ControlCustomerQuote — tells FXall which shareable stream to contribute to a customer's private marketplace and limits the maximum size of quote that they will be shown.
Related fields: FXallId, MakerId, MakerName, MakerGroupName, SizeLimit
-
AbortQuote — withdraws the last quote sent to a client and indicates no further quotes will be supplied for the particular order.
Related fields: FXallId, StandardMsgCode
-
AcceptDeal — accepts a deal request.
Related fields: FXallId
-
SendChatMessage — sends a chat message to the requester of the trade.
Related fields: FXallId, ChatMessage
-
SendInfoResponse — sends a response to a previously received Info Request.
Related fields: FXallId, InfoRequestType, InfoRequestRejected, OrderRejectReason
-
SendPickup — signals to the FXall system that the Order is being processed.
Related fields: FXallId, MakerId, MakerName, MakerGroupName, RequirementMakerIds
-
SendQuote — sends a quote in response to a quote request
Related fields: FXallId, MakerId, Bid, Ask
-
RejectDeal — FXallId, StandardMsgCode
Related fields: rejects a deal request.
-
WithdrawQuote — withdraws the last quote sent in the stream identified by the the FXallId and MakerId. This command can be used to withdraw a quote sent in any protocol, but is required if the quote being withdrawn was part of a shareable stream.
Related fields: FXallId, MakerId, StandardMsgCode
-
-
FXallId, string: the FXall system ID of the affected order.
-
MakerId, string: the Maker's ID for the terms identified by FXallId.
-
MakerName, string: the individual handling the order at the maker.
-
MakerGroupName, string: the group handling the order at the Maker.
-
SizeLimit, string: the maximum amount the customer is allowed to trade.
-
StandardMsgCode, string: the FXall standard message for the quote or deal being aborted, withdrawn, or rejected
-
BadLogIn
-
ClientTradeAck
-
CustomerAccept
-
DeniedAcctNotMapped
-
DeniedAmountUnderMin
-
DeniedBaddecimal
-
DeniedCcyPairNotSupported
-
DeniedCredit
-
DeniedInvalidAmount
-
DeniedInvalidBusDay
-
DeniedInvertCcyNotSupported
-
DeniedNoMultiAllocation
-
DeniedNoPermission
-
DeniedNoSendDetails
-
DeniedNoTwoWayPrice
-
DeniedProductNotSupported
-
DeniedProviderNotAvailable
-
DeniedStaleQuote
-
DeniedSystem
-
DeniedTenorNotSupported
-
DeniedTradeCredit
-
ExecutionDoubtful
-
InfoRequest
-
LockedOut
-
MakerConfirm
-
MakerPickUp
-
MakerStoppedDeal
-
NoPickUp
-
NothingDone
-
ProviderConnect
-
ProviderDisconnect
-
QuoteWithdrawn
-
RFQSent
-
StatusReport
-
StatusRequest
-
UserConnect
-
UserDisconnect
-
-
ChatMessage, string: the content of the chat message.
-
InfoRequestType, string: the type of InfoRequest event being responded to with a SendInfoResponse command.
STATUS
is currently the only supported value. -
InfoRequestRejected, bool: True if the order associated with the FXallId is being rejected and false otherwise.
-
ObjectRejectReason, string: The additional information, such as the reject reason, provided with a SendInfoResponse command.
-
PriceLegs, list<tuple>: a list of tuples containing price information, one per leg in the original order. Each price tuple has three fields:
-
Bid, tuple: the bid quote. The bid tuple has the schema described in the table below.
-
Ask, tuple: the ask quote. The ask tuple has the schema described in the table below.
Field Data Type Description Reference string The reference to this quote within the maker's system. TimeToLive int The time (in seconds) this quote is valid for (where supported). SpotRate string The taker spot rate used to calculate the all-in rate. AllInRate string The taker all-in (forward) rate. ForwardPoints string The relative taker forward points (in pips) used to calculate the all-in rate. -
MidRate, string: the mid rate value. Note: In a swap deal if either of the legs require a mid rate then both the legs should have midrate value set.
-
-
RequirementMakerIds, list<list<string>>: This field must be present if and only if the
Set Requirement Maker IDs
property is enabled. It contains the Maker ID values used to populate each requirement of each leg during a SendPickup command. The outer and inner lists correspond to the leg and requirement objects, respectively. The number of top-level and nested list entries must match, respectively, the number of legs and requirements in the order. If the field is null, no requirement maker IDs are populated.
FXallOutputStatus: The output adapter emits tuples on this port in response to important adapter events such as connection transitions, adapter suspend and resume activity, and rejected input tuples.
-
type, string: the type of event:
-
Connection
-
ConnectionStatus
-
SuspendResume
-
User Input
-
-
action, string: the action associated with the event:
-
Up — connection to FXall server is up
-
Down — connection to FXall server is down
-
Suspending — adapter is being suspended
-
Resumed — adapter has been resumed
-
Rejected — an input (command) tuple has been rejected
-
Failed — a call to an FXall API method failed, possibly because the connection to the FXall server is down
-
-
object, string: the connection information when a connection goes up or down, the adapter icon name when the adapter is suspended or resumed, or the input tuple that was rejected.
-
message, string: a human-readable version of the event.
-
inputTuple, tuple: a copy of the input tuple if the event was the result of processing an input tuple or null othersise.
The FXall Relationship Trading Provider adapter uses typecheck messages to help you configure the adapter within your StreamBase application. In particular, the adapter generates typecheck messages for the following reasons:
-
A required property such as the FXall host name or username is missing.
-
One or more required fields in an input schema is missing or is of the wrong type.
-
One or more unexpected fields are present in an input schema.
The adapter generates warning messages during runtime under various conditions, including:
-
The adapter fails to connect or loses its connection to the FXall server.
-
A tuple is enqueued to the output adapter while the connection to the FXall server is down.
-
A tuple enqueued to the output adapter contains one or more missing or invalid arguments.
When suspended, the adapter continues to receive and process FXall messages, but no longer emits tuples on its output ports.
When resumed, the adapter once again starts emitting tuples on its output ports.