-
Notifications
You must be signed in to change notification settings - Fork 12
Presentation Layer
- The Conga project should support high performance binary message encodings. First among them is Simple Binary Encoding (SBE), a FIX standard. SBE supports all FIX datatypes and deterministic message layouts enforced by templates.
- The project also supports JSON encoding. The JSON messages are not constrained by a schema but are semantically equivalent to the SBE messages.
- The project should allow substitution of other message encodings. Message wire format should be isolated from business logic.
In the initial implementation, both application and session messages are encoded with the same protocol. However, this is not an absolute requirement. It would be possible to encode application and session messages with different protocols.
Module conga-sbe
contains two SBE message schemas, one for FIXP session messages, and another for sample application messages. The module generates SBE encoders and decoders for defined messages.
Interfaces are provided for simplified layouts of these FIX messages:
- ExecutionReport
- NewOrderSingle
- NotApplied (specified by FIXP)
- OrderCancelRequest
- OrderCancelReject
The demo interfaces just provide features for order matching and not post-trade operations.
Implementers who wish to use a different message encoding need to create a new module, equivalent to conga-sbe
, with encoders and decoders for application and session messages. For the application messages, implementers need to realize the interfaces in package io.fixprotocol.conga.messages
of module conga-common
.
To support real-life needs, it should be possible to generate abstract message interfaces and SBE templates from an Orchestra file of machine-readable rules of engagement.