-
Notifications
You must be signed in to change notification settings - Fork 34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Scenario Selective Inheritance support #212
base: v1-1-RC2
Are you sure you want to change the base?
Conversation
@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. |
Hello @kleihan! We suggest removing the |
Codes do not need any ordering in the wire format. They are mutually exclusive values and the optional use of the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The following is a short summary of reasons for not approving the proposed schema changes. Scenarios are one of the key features of Orchestra. I fully agree with the need to clearly define relationships between scenarios. Version 1.0 does not provide this. However, I do not think that this proposal is the right one and will enter a separate proposal (#228).
- The chosen syntax deviates from the current Orchestra "language" that is declarative and not procedural. The positioning of elements is done through instructions (before/after) instead of references like we have today.
- We already have an approach for external instructions to modify an XML file with the open-source tool XML Diff/Merge that used the IETF RFC 5261 standard for this.
- Instructions should not be embedded in the XML file and require post-processing by the receiver of an Orchestra XML file.
- The proposed change requires a large number of new types and elements that are not needed to cover the requirements
- Compatibility with the Tablature does not seem possible with the new approach
- Excluding an element reference from a definition is already covered by the V1.0 attribute "supported=forbidden/ignored" and does not require new "unref"-elements
- The code attribute "sort" should not be removed as it is in use
- The ability to reference a scenario not only by ID but also by name is not supported
- Human readability of the XML file is severly impacted and was a design goal for Orchestra
- The complexity added by the proposal should be accompanied by a guideline to explain its usage
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. |
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. |
I share the basic view of Don Mendelson. A few years ago - we discussed this at length. The view is that this should be in the realm of tooling not built into Orchestra. For instance - a tool could use a base repository and then have actions to push new fields out to scenarios. I don't see any reason to try and implement these full semantics into XML. XML is already too complex to be used as a graph database- which effectively these semantic extensions would require. |
Following up from the meeting: I think that there needs to be a serialization format that does not require applying transformation - the published format that would be consumed by trading systems for automation needs to by simplified. Can you imagine if to read a REST inerface there had to be a processor unit. If a group of vendors want to band together to create a tooling specification for managing Orchestra repositories - which would include the inheritance features - I don't have a problem with that - but that would be a management / tooling standard - it should not be part of the orchestra serialization / runtime interface of FIX Orchestra for machine-machine interface. |
I like @jimnup idea. We should explore in the next meeting. |
I agree with @donmendelson and others that Orchestra specifications should be fully declarative, and any necessary pre-processing or transformations to generate correct XML should be handled internally by the publishers. Below is an overview of our current build pipeline: Key Notes:
Regarding @kleihan's other points:
|
This PR updates repository schema based on the discussion, and adds example file. Resolves #211.