Skip to content
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

Spike #2

Open
wants to merge 41 commits into
base: main
Choose a base branch
from
Open

Spike #2

wants to merge 41 commits into from

Conversation

david-gibbs-ig
Copy link
Collaborator

This is a PR for tools to generate Apache Avro schemas from a FIX Orchestra repository. I think the best way to review this is to check it out and build it, there are READMEs in the project. If this is worthy; and following review, should the PR be approved, and before merging to main, please create the following Action Secrets for the organisation. This will permit the release to the Sonatype OSS Repository Hosting repository to be made by GitHub Actions workflows in the project. Also please make the Action Secrets available to this repository in the settings. These secrets are encrypted and cannot be viewed by collaborators. The secrets that this plan expects are :

Ref : https://central.sonatype.org/publish/publish-maven/#performing-a-release-deployment-with-the-maven-release-plugin

david-gibbs-ig and others added 30 commits March 8, 2022 19:49
added option to normalise groups and components
Initial commit to master
* change to mvn co-ordinates so a release of this project can be made before io.fixprotocol original version is released
* change to mvn co-ordinates so a release of this prject can be made before io.fixprotocol original branch is released
* change to mvn co-ordinates so a release of this project can be made before io.fixprotocol original branch is released
* added distribution management
* change to mvn co-ordinates so a release of this prject can be made before io.fixprotocol original branch is released
Copy link
Member

@donmendelson donmendelson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The FIX field types are mapped directly to Avro primitive types, many mapped to string. I'm concerned that some specialization is lost. For example, how is a timestamp written as a string in such a way that can be interpreted correctly by a reader. I see that Avro has "logical types", such as date and timestamp. Shouldn't we use those? For flexibility, mapping could be written in an Orchestra file as element mappedDatatype rather than hardcoding. The code doesn't consult the datatypes section at all.

@david-gibbs-ig
Copy link
Collaborator Author

david-gibbs-ig commented Apr 15, 2022

The FIX field types are mapped directly to Avro primitive types, many mapped to string. I'm concerned that some specialization is lost. For example, how is a timestamp written as a string in such a way that can be interpreted correctly by a reader. I see that Avro has "logical types", such as date and timestamp. Shouldn't we use those? For flexibility, mapping could be written in an Orchestra file as element mappedDatatype rather than hardcoding. The code doesn't consult the datatypes section at all.

I have added the datatype mappings and also support for Avro Logical Types.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants