The Common Domain Model is an open standard project hosted under FINOS, the Fintech Open Source Foundation, starting in February 2023.
The standard is developed through the Community Specification open governance process, and underlying code assets are released under the Community Specification License 1.0. For versions before 4.0.0 and other license details, check License.md
To participate in the standard process and working group meetings, enroll as a participant by completing a Community Specification Contributor License Agreement (CSL CLA). All meetings are to be held in accordance with the FINOS policies and procedures.
For a more detailed overview of the existing Working Group and standard Participants, Editors and Maintainers, please see Governance.md. For more information on discussions and announcements subscribe to our mailing list using the following link.
The CSL specifies three different contribution roles for each specific Working Group:
- Maintainers - those who drive consensus within the working group
- Editors - those who codify ideas into a formal specification
- Participants - anyone who provides contributions to the project under a signed CSL CLA. A great way to sign the CLA is to open a Pull Request to add your name to the Participants.md file.
The following Working Groups are currently activated or about to be setup for this project:
- Contribution Review Working Group
- Collateral Working Group
- Technology Architecture Working Group
- Structured Products Working Group
- FINOS CDM Steering Working Group
- ISLA CDM Working Group (Securities Lending)
- ISLA CDM Trading Working Group (Securities Lending)
- ISLA Document Digitisation Working Group (GMSLA)
- ICMA CDM SteerCo for repo and bonds
Changes to the CDM may be proposed by CDM Working Groups, individual corporate contributors, or individual contributors.
2.1.0 Any Participant may propose a Working Group. Proposals for the formation of a new Working Group are made by completion of a new CDM Working Group template, clearly stating the objectives, deliverables and committed maintainers/editors for the proposed Working Group.
2.1.1 Approval of Specification Changes by Working Groups. Participants of each Working Group approve the “proposed” changes from that working group; the “approved changes” within a given Working Group will be brought to the Steering Working Group as a proposed “Pre-Draft” contribution.
- Participants of the CDM Steering Working Group approve DRAFT specification releases.
- Maintainers of the CDM Steering Working Group will approve merging of the proposed “Pre-Draft” changes (coming from other Working Groups or otherwise from community) into the repo.
2.2.0 CDM Steering Working Group. The CDM Steering Working Group will review and approve completed Working Group formation proposals per 2.1.0.
2.2.1 CDM Steering Working Group Purpose: The Steering Working Group is responsible for developing the technical and modelling guidelines, setting and revising the project’s strategic roadmap, and for vetting proposed changes. The CDM Steering Working Group may approve or establish additional working groups.
2.2.2 Appointment of CDM Steering Working Group Maintainers:
- At the launch of the project, up to two initial Maintainers will be nominated by ICMA, ISDA, and ISLA (collectively, the “trade associations”).
- Additional CDM Steering Group Maintainers may be proposed by Participants. Proposed maintainers will be approved via consensus of the Participants and with agreement of existing Maintainers, and should meet the following criteria:
- Proven experience in data modelling and/or software development in financial markets.
- In-depth understanding and proven track record of contribution to the CDM, as well as other data standards (such as ISO) and messaging protocols (such as FIX, FpML or Swift).
2.2.3 CDM Steering Working Group Decision Making: As outlined in governance.md, The CDM Steering Working Group will operate by consensus-based decision-making. Maintainers are responsible for determining and documenting when consensus has been reached. In the event a clear consensus is not reached, Maintainers may call for a simple majority vote of Participants to determine outcomes.
2.2.4 CDM Steering Working Group Appointment of the Editor(s): Editors will review and implement pull requests not expressed in code, test and release new functionalities, resolve bugs and implement approved improvements.
Contributions to the CDM have to comply with the following set of design principles that include the following concepts:
- Normalisation through abstraction of common components
- Composability where objects are composed and qualified from the bottom up
- Mapping to existing industry messaging formats
- Embedded logic to represent industry processes
- Modularisation into logical layers \
The CDM Development Guidelines are defined by the Steering Working Group. The full set of CDM development guidelines can be found here.
Interact with the CDM community
GitHub
CDM activity primarily happens in this CDM GitHub repository. Watch the repository in order to be notified of new Pull Requests and issues.
If you'd like to receive official updates, please send an email to help@finos.org. You can join the CDM mailing list by sending an email to cdm+subscribe@lists.finos.org.
Meetings
Finally, another great way to interact with the community is to attend the bi-weekly CDM Contribution Review Working Group, monthly Collateral Working Group, monthly FINOS CDM Structured Products Working Group, monthly Steering Technology Architecture Working Group, and/or quarterly FINOS CDM Steering Working Group: email help@finos.org to be added to the meeting invites directly, or find the meeting in the FINOS Community Calendar. If you are using an outlook calender you can add the meetings to your calender directly by downloading the ics files shown here.
Need help?
Email help@finos.org. if you need help getting started in the CDM Community or if you encounter technical difficulties accessing repositories, mailing lists or meetings.
See guidelines for the licensing agreement here.
To implement changes in the CDM repository resolving an issue please read our contribution guidelines.
NOTE: Commits and pull requests to FINOS repositories will only be accepted from those contributors with an active, executed Individual Contributor License Agreement (ICLA) with FINOS, OR who are covered under an existing and active Corporate Contribution License Agreement (CCLA) executed with FINOS. Commits from individuals not covered under an ICLA or CCLA will be flagged and blocked by the Linux Foundation EasyCLA tool. Please note that some CCLAs require individuals/employees to be explicitly named on the CCLA.
Need an ICLA? Unsure if you are covered under an existing CCLA? Email help@finos.org.
The Rosetta Design application can be used to contribute to the CDM without setting up any development environment. Rosetta Design’s source control integration means that a PR is automatically created to a fork of the FINOS CDM under the Rosetta Models GitHub Organisation.
Steps:
- Create a Workspace for the CDM in Rosetta Design
- Review and contribute change in Rosetta Design - which will create PR in the rosetta-models organisation
- Create a PR to the Finos Github. See instructions here
- Fork it (https://github.com/finos/common-domain-model)
- Create your feature branch (
git checkout -b feature/my-new-feature
) - Make a change - hint you can make changes to Rosetta files directly on your desktop using the Rosetta VS Code plugin
- Read our contribution guidelines and Community Code of Conduct
- Commit your changes (
git commit -am 'My New Feature'
) - Push to the branch (
git push origin feature/my-new-feature
) - Create a new Pull Request
The CDM has extensive documentation which is kept up to date. Any change to the CDM should be accompanied by documentation. See docs guide here
NOTE: Commits and pull requests to FINOS repositories will only be accepted from those contributors with an active, executed Individual Contributor License Agreement (ICLA) with FINOS OR who are covered under an existing and active Corporate Contribution License Agreement (CCLA) executed with FINOS. Commits from individuals not covered under an ICLA or CCLA will be flagged and blocked by the FINOS Clabot tool (or EasyCLA). Please note that some CCLAs require individuals/employees to be explicitly named on the CCLA.
Need an ICLA? Unsure if you are covered under an existing CCLA? Email help@finos.org
Copyright 2021 FINOS and CDM Participants
Specifications in the repository are subject to the Community Specification License 1.0 available in the LICENSE.md file.