The Lab


  File Modified
ZIP Archive mf-enterprise-sample-4.13.0-b88.tgz Deprecated, NOT compatible with schema v19456 or later. Feb 21, 2025 by Matthew Whitaker
ZIP Archive mf-enterprise-sample-5.2.0-b92.tgz compatible with schema v19457 and later Feb 21, 2025 by Matthew Whitaker
ZIP Archive mf-enterprise-sample-5.3.0-b96.tgz compatible with schema v19458 and later Sept 02, 2025 by Rob Purdy


Whisperer Enterprise is based on industry standard interface standards, and as such no closed/proprietary API is required to communicate with Whisperer Enterprise server components. The SBE Schema serves as the system's API.

For those client not immediately familiar with binary messaging protocols such as SBE, MarketFactory has prepared a open sample client application in Java illustrating best practice models for usage of the codec stubs generated from the schema, threading model, callbacks etc. This should be considered a starting point for integration into the customers specific deployment architecture.

The SBE encoders and decoders in the samples are generated using the SBETool with the following options:

sbe.target.language: 'Java'
sbe.validation.stop.on.error: 'true'
sbe.target.namespace: 'com.marketfactory.protocol.sbe4'
sbe.java.generate.interfaces: 'true'
sbe.generate.stubs: true

5.3.0 - 29 Aug 2025

  • [UPDATED] Schema changed to 19458. Non-breaking change.
  • [FIXED] When a partial message read was done and then the next socket read read no bytes; the original bytes were lost.

5.2.0 - 19 Feb 2025

  • [UPDATED] Updated to schema version 19457. Non breaking change.

5.1.0 - 12 Aug 2024

  • [UPDATED] Improved SBE samples, reference API implementation and documentation.

5.0.0 - 9 Apr 2024

  • [UPDATED] BREAKING CHANGE. Schema changed to 19456
    • All repeating groups counts changed from uint8 (255) to uint16 (65535). This was done specifically to allow more MarketDataIncrementalRefresh entries as some venues send 300+ entries per side. This change requires no code changes on the client-side but changes the message wire-format and is NOT backwards compatible.
  • [UPDATED] Updated agrona and SBE dependency versions

4.13.0 - 23 Feb 2024

  • [UPDATED] Changed the Pricing Session sample code to set the resetSeqNum Flag to true.
  • [FIXED] Now when connected to the venue, all BusinessMessageReject messages are passed to handlers.

4.12.0 - 8 Dec 2023

  • [UPDATED] Updated to schema version 18945

4.11.0 - 26 Sept 2023

  • [UPDATED] Performance improvements

4.10.0 - 22 Aug 2023

  • [UPDATED] Updated to schema version 18944

4.9.0 - 2 Mar 2023

  • [UPDATED] Removed the temporary support for the original logon procedure added in 4.2.0.
  • [FIXED] During logon if multiple messages are processed in a batch, the state change needs to take effect immediately to properly process.

4.8.0 - 1 Nov 2022

  • [UPDATED] Modified to handle corrected Logout protocol. Venue logout first, followed by Gateway logout. https://confluence.marketfactory.com/x/M4FZAg

4.6.1 - 16 February 2022

  • [FIXED] Fixed issue with compilation incompatibilities in version 4.6.0. Running 4.6.0 with Java 8 produced an Exception: java.lang.NoSuchMethodError: java.nio.ByteBuffer.limit(I)Ljava/nio/ByteBuffer;

4.6.0 - 7 January 2022

  • [UPDATED] log4j version updated to 2.17.1 to get the bugfix for the critical vulnerability.

4.5.0 - 12 December  2021

  • [UPDATED] Moved to log4j version 2.15.0 to get the bugfix for the critical vulnerability.

4.4.0 - 27 October 2021

  • [UPDATED] Schema changed to 18656.
    • NOTE: the uk.co.real-logic SBE-ALL dependency changed from 1.11.0 to 1.24.0
    •  see The Lab https://confluence.marketfactory.com/x/cxgcAQ for details of the changes.

4.3.1 - 27 September 2021

  • [UPDATED] Included the reference API source code in the 'src' directory. It is also included in the '-sources'.jar in the libs directory.
  • [UPDATED] Removed the 'Tools' directory as it was out-of-date.

4.3.0 - 21 September 2021

  • [UPDATED] Added support and sample for the Replay Service.

4.2.0 - 15 June 2021

  • [UPDATED] Added, temporary, support for the original logon protocol that changed in version 4.0.0. Now both protocols, new and original, are supported. The code 'guesses' at which protocol the server is using - no code changes required on the user's side.

4.1.0 - 2 Feb 2021

  • [UPDATED] Schema changed to 18654

4.0.0 - 20 Jan 2021

  • [UPDATED] BREAKING CHANGE. Schema changed to 18542
    • Reject and BusinessMessageReject - These standard FIX protocol messages have been added as part of a planned migration from ErrorReport, which will be deprecated in due course.
    • TenorType - M13 & M14 tenors added, for Integral_RFS_Maker
    • Execution Report legAvgPx - New field
    • MarketDataRequest - Now incorporate a NoBodyPassthruFields block to support per-venue customisation.
    • Additional values in various enums
  • [UPDATED] BREAKING CHANGE. Synchronisation Model Changed
    • Details here https://confluence.marketfactory.com/x/IIFZAg
    • The Sample Client will not work with servers prior to the 2020.11.16.WE version
  • [UPDATED] Removed the requirement for samples to increment next expected sequence numbers.
    • To increase the consistency and clean up the sample code the inputSequenceStore.compareAndIncrement(messageHeader.msgSeqNum()); has been removed from every onXXX message handler callback method. The incrementing happens before the message is sent to the callback.

3.1.1 - 24 Nov 2020

  • [FIX] Ensured HeaderFlags is cleared on all Sample outgoing messages

3.1.0 - 6 Aug 2020

  • [UPDATED] Schema changed to 18459
    • Fixes spelling with enum value in QuoteRequestRejectReason ProviderUnAvailable -> ProviderUnavailable

3.0.0 - 21 Jul  2020

  • [UPDATED] BREAKING CHANGE. Schema changed to 18444
    • PossDupFlag moved from tradingFlags to the new headerFlags
    • MassQuote HasExtendedPriceFields repeating group removed and replaced/split into HasExtendedBidFields and HasExtendedOfferFields
    • Other important changes:
      • Added MDReqRejReason and QuoteRequestRejectReason, CxlRejReason fields to MarketDataRequestReject, QuoteResponse, OrderCancelReject respectively
      • Changes to enum values
    • NOTE: This schema version will only work with gateways that have schema version 18444+. You should compare schema version 18444 with the schema version you are currently using to determine the changes relevant to you.
  • [UPDATED] Added ESPMakerSample with pricing and orders connection.

2.1.0 - 22 May 2020

  • [UPDATED] Schema changed to 18394
    • RegulatoryBodies - added enum value ClearingFirm
    • TradingFlags - IsSynthetic option added to indicate the message generated by Whisperer; not the venue
    • MarketDataIncrementalRefresh - new field MDSubFeedType added to the body
    • EndMarker - added fields and repeating groups
    • QuoteCancel - added NoHops block

2.0.2 - 23 Apr 2020 RC2

  • [UPDATED] Updated the MassQuoteTradingSample to better handle reconnection attempts.
  • [UPDATED] Added ESPMakerSample with both pricing and orders connection.

2.0.1 - 8 Apr 2020

  • [UPDATED] Added callback handlers and samples for MarketData Pricing, MassQuote Pricing, and Trading.

2.0.0 - 30 Mar 2020

  • [UPDATED] BREAKING CHANGE. Schema changed to 18320. MessageLength increased, message fields changed order, new fields and repeating groups added. This schema version will only work with gateways that have schema version 18320+. You should compare schema version 18320 with the schema version you are currently using to determine the changes relevant to you.

1.2.0 - 24 Mar 2020

  • [UPDATED] Schema changed to 18309 related to MiFID EDM/IDM/Person|Algo.
  • Important BodyRegulatoryKey enum changes
    • MiFIDExecutingDecisionMaker -> MiFIDExecutingDecisionMakerAsNaturalPerson
    • MiFIDInvestmentDecisionMaker -> MiFIDInvestmentDecisionMakerAsNaturalPerson
    • MiFIDAlgorithmicOrderFlag -> MiFIDExecutingDecisionMakerAsAlgorithm
    • New enum value MiFIDInvestmentDecisionMakerAsAlgorithm
  • Additional changes:
    • BodyRegulatoryKey enum value SFTRSecuritiesFinancingTransactionFlag moved to LegRegulatoryKey enum value LegSFTRSecuritiesFinancingTransactionFlag
    • TenorType enum values added/modified

1.1.1  11 Feb 2020

  • [UPDATED] Updated SBE schema to 18208. Added new enum value 'AllocMiFIDLEI' for use in NoAllocRegulatoryFields

1.1.0  1 Dec 2019

  • [ADDED] Source code
  • [ADDED] More tool scenarios to create various logon scenarios

1.0.1  20 Nov 2019

  • [FIX] ExecutionAck replay is now allowed during the sever to client synchronization phase.

1.0.0 1 Nov 2019

  • [FIX] Received Heartbeats and Test Request messages now automatically increment the next expected sequence number

0.1.6 09 Oct 2019

  • [UPDATE] Added mock server tool source. Mock server can be used to simulate scenarios locally.
  • [UPDATE] Updated SBE schema to 18167
  • [UPDATE] Increased send and receive buffer size to 64k

0.1.5-beta 

  • [UPDATE] updated SBE schema to 18129 and necessary changes to the sample

0.1.4-beta

  • [UPDATE] SBE schema to 18079
  • [FIXED] MakerSample includes forward points and party ids necessary for FxAll QuickTrade

0.1.3-beta

  • Initial Release



  • No labels