FIXTradingCommunity / fix-orchestra

Machine readable rules of engagement
Apache License 2.0
71 stars 34 forks source link

Scenario Selective Inheritance support #212

Open mkudukin opened 1 month ago

mkudukin commented 1 month ago

This PR updates repository schema based on the discussion, and adds example file. Resolves #211.

kleihan commented 3 weeks ago

@mkudukin why did you remove the sort attribute from the codeType? This attribute is not specific to scenarios and used for display purposes of code sets.

mkudukin commented 2 weeks ago

Hello @kleihan! We suggest removing the sort attribute and instead displaying items in the order they appear in the XML file. The position reference feature allows for inserting new codes in the middle of existing code sets. This means the solution depends on the scenario proposal. Please let me know if we should open a separate issue/PR for this anyway.

kleihan commented 1 week ago

Codes do not need any ordering in the wire format. They are mutually exclusive values and the optional use of the sort attribute may be used to order them. FIXimate uses this attribute and hence depends on it. A user can decide to not to the attribute and always rely on the physical order in the XML file.

donmendelson commented 3 days ago

I agree with @kleihan. From the perspective of a user that has received rules of engagement from a service provider, expected usage should be clear without having to apply scenario transformation rules. The proposal is also overly complex; we should respect the KISS principle.

I concede that such transformations may useful to a publisher of rules of engagement as an audit trail, but that should be kept internally. A client is only interested in the message definitions after scenario transformations have been applied.

JohnGreenan commented 1 day ago

Quote from Hanno:

Instructions should not be embedded in the XML file and require post-processing by the receiver of an Orchestra XML file.

The Orchestra file is the artefact. It's not source code to run into a compiler. It's the be-all and end-all. Else how do you handle bugs where compiler A and compiler B have different outputs?

You then need an arbitration mechanism. Then FIX Trading Community is going to get pulled into arbitration between different implementations.

This is NOT the right path.

On this reason alone I fundamentally disagree with this mechanism.

I reserve the right to find more bones of contention, but this is sufficient to reject.