This page provides high-level notes outlining the scenarios that the Client must handle correctly when integrating with Whisperer. The MarketFactory Support team will ensure that all applicable scenarios are exercised and passed satisfactorily before moving forward to Production and go-live.

The focus of these tests is to ensure that the Client/Whisperer interface is implemented and works correctly.

These tests do not short-circuit the need for the Client and Venue to do further tests in order to verify that their specific needs and requirements are met.


Client Session Handling


Verify that all Client Timestamps are expressed as UTC in all messages

Logon

Client Logon message contains the correct values for:

Session Synchronisation

Client Logon next-expected = MF actual

Receive TestRequest, correctly send Heartbeat response.

Client Logon next-expected < MF actual

Correctly handles resent messages and/or SequenceResetGapFill messages.

Receive TestRequest, correctly send Heartbeat response.

Client Logon next-expected > MF actual

Expect disconnect.

MF LogonResponse next-expected = Client actual

Correctly sends TestRequest, wait for response (this is synchronisation complete).

MF LogonResponse next-expected < Client actual

Correctly resends messages and/or SequenceResetGapFill messages.

MF LogonResponse next-expected > Client actual

Correctly disconnects.

Logoff

All client sessions must be terminated gracefully in normal circumstances.

Client-Initiated Logoff

Client may only issue Logoff when no Venue session is active.

Client waits for reciprocal Logoff message from MF.

MF-Initiated (e.g. on weekend restart)

Client responds to MF-issued Logoff message with reciprocal Logoff.

Dropped Socket Connection

Test force disconnect & automatic reconnect of session

Session Monitoring

Client Heartbeats

In the absence of sending other messages, the Client publishes Heartbeat messages at their specified interval (Logon HeartBtInt)

Client Monitoring of MF Messaging

In the event that no message has been received from MF after the HeartBtInt, the Client

TestRequest Handling

The Client sends a Heartbeat message in response to every MF TestRequest message received.

Venue Connectivity

The sequencing matters. 

UserRequest (LogOnUser)

Client directs MF to connect to Venue.

Message only sent when the client is not currently logged on.

ErrorReport

Client receives MF notification of any problems and takes the correct planned action. It is not acceptable to ignore these. Refer to ErrorReport Handling for context.

UserNotification (LoggedOn)

Client is notified when Venue connectivity is established.

UserRequest (LogOffUser)

Client directs MF to disconnect from Venue.

Message may be sent:

UserNotification (LoggedOff)

Client is notified when Venue connectivity is terminated.

Maker

Maker certification should focus primarily on outbound (Client > MF) message correctness.

RFS Workflow

QuoteRequest

Client is able to receive and correctly identify all flavours of RFS requests, i.e. permutations and combinations of the following:

QuoteResponse

Ensure Client handles all RFS termination modes.

Outbound Client > Venue

Quote Request Rejection

Client should be able to send different rejection reasons, e.g. Credit check failure vs unsupported pair.

Client must be aware of availability of Custom error codes for:

Quote Request Timeout

Client should terminate RFSs after a period of time (e.g. 3-5m). The Client timeout may, or may not, match the Venue setting.

Inbound Venue > Client

Client must be able to handle Venue-termination of active RFS - either due to the Venue stream timeout, or because the counterparty dealt away, or because the counterparty canceled the request.

Quote

Quote messages must be generated for all the permutations and combinations of QuoteRequest above.

Checks must be made against the following attributes:

QuoteCancel

The Client  can explicitly withdraw a previously issued Quote.

NewOrderMultileg

Client must be able to receive orders for all the permutations and combinations of QuoteRequest above.

ExecutionReport

Ensure that Client handles both deal acceptance and deal rejection.

Deal Acceptance

Regulatory - All regulatory regimes must be explicitly declared as in or out of scope. In scope regimes must be demonstrated to populate the required reg. fields correctly:

Deal Rejection

Client should be able to send different rejection reasons, e.g. Credit check failure vs stale quote.

Client must be aware of availability of Custom error codes for:

ExecutionAcknowledgement

Client must be able to receive acknowledgements of all fills, and possibly rejections, for all the permutations and combinations of QuoteRequest above.

ESP Workflow

TODO

Taker

RFS Workflow

TODO

ESP Workflow

TODO

CLOB

Market Data

TODO

Orders

TODO

Venue-Specific Certification

Venue-specific scenarios should be exercised, to ensure that there are no surprises when Client/Venue conformance tests are performed: