Multiple FIX Schemas
Chronicle FIX supports multiple FIX schemas within a single engine. To optimize performance and latency, Chronicle FIX generates strongly typed MessageNotifiers, message interfaces, and DTOs for each schema. As a result, there is no relationship between the generated code for different schemas. For example, to validate an incoming NewOrderSingle, a developer would need to write code to adapt each different generated NewOrderSingle interface to generic validation functionality.
Refer to the Multiple FIX Versions FIX demo example for a demonstration of this approach. For more information on accessing the Chronicle FIX demo, please contact your account manager.
Chronicle FIX offers several solutions to support multiple schemas within an engine:
Merging Schemas: Multiple schemas can be merged before code generation, allowing a single set of generated code to handle messages for all schemas. This approach is simple and straightforward but loosens validation rules.
Schema Intersection: This method generates common code for multiple schemas, as well as specialized code for each schema that extends the common code. It is lightweight and allows relationships between schemas to be explicitly modeled in message interfaces and DTOs, though it is more complex to set up.
Chronicle FIX MultiSchema: Provides in-process mapping between schemas, as well as mapping to other DTOs, and supports both forward and backward mapping. However, this approach introduces extra code into the hot path.
By using the MultiSchema mapper, the FIX Router can translate FIX messages between several schemas, among other capabilities. This solution requires an additional engine or process to function as a router.