Skip to content

The Common Domain Model (CDM) is a standardised, machine-readable and machine-executable blueprint for how financial products are traded and managed across the transaction lifecycle. It is represented as a domain model_and distributed in open source.

License

Notifications You must be signed in to change notification settings

rosetta-models/common-domain-model

 
 

Repository files navigation

FINOS Hosted Platform - CDM Object Builder FINOS - Incubating Codefresh build status

Common Domain Model (CDM)


 View CDM Homepage 

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 Notice.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.

Read more about project contribution guidelines, principles, frequently asked questions and the journey of Common Domain Model into Open Source at FINOS.

Governance overview

Roles

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.

Active Working Groups

The following Working Groups are currently activated or about to be set up for this project:

Changes to the CDM may be proposed by CDM Working Groups, individual corporate contributors, or individual contributors.

Working Groups

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.

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.

CDM Steering Working Group. The CDM Steering Working Group will review and approve completed Working Group formation proposals per 2.1.0.

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.

The first Steering Group of each calendar year will include a review of existing governance measures and wording on the agenda for re-ratification.

Appointment of CDM Maintainers:

Maintainers are designated as either Organisational Representatives (OrgRep) or Private individuals. Private individuals are maintainers in their own right, acting on their own volition and not representing another legal entity. OrgReps are appointed by their organisation, acting on behalf and for that organisation. Organisations are recommended to appoint at least two representatives for coverage purposes. Organizations may change their OrgReps at any time.

A list of Maintainers along with their type will be kept visible within the governance documentation provided on the repo and mini-site.

  • Additional Maintainers may be proposed by Participants. Proposed new Private individuals or new organisations 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).Private individuals and Organisations may choose to rescind their maintainership at will but must notify the other maintainers. Any entity who has chosen to rescind their maintainership, but then at a later time would like to re-join the maintainer team, is subject to the voting process outlined above. Additionally any OrgRep who has been replaced by their organisation, but wishes to remain a maintainer as a Private Individual will also need to go through the voting process. For the voting purposes, each Organization will have one vote.

Maintaining entities or representatives can have their maintainer status revoked by unanimous vote of other maintainers. This measure is expected to be used only in extreme circumstances such as in the event of a maintainer being inactive for a significant period of time, or being found to no longer meet the requirements of being a maintainer set out above. This is not intended to be an exhaustive list of circumstances.

Proposals for an entity to be given maintainership status or to have maintainership rescinded should be made at a Steering Group, with final approval or rejection at the following Steering Group to ensure fair notice for all. Proposals should be sent to the Steering Group chair to add to the agenda.

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.

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.

CDM Design Principles

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 \

CDM development guidelines

The CDM Development Guidelines are defined by the Steering Working Group. The full set of CDM development guidelines can be found here.

Getting involved

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.

Email

If you'd like to receive official updates, please send an email to [email protected]. You can join the CDM mailing list by sending an email to [email protected].

Meetings

Finally, another great way to interact with the community is to attend the bi-weekly Contribution Review Working Group, monthly Collateral Working Group, monthly FINOS Structured Products Working Group, monthly Steering Working Group, monthly Technology Architecture Working Group, bi-weekly Derivative Products and Business Events Working Group, and/or quarterly Steering Working Group: email [email protected] to be added to the meeting invites directly, or find the meeting in the FINOS Community Calendar.

Need help?

Email [email protected]. if you need help getting started in the CDM Community or if you encounter technical difficulties accessing repositories, mailing lists or meetings.

Roadmap

  • The latest CDM roadmap of expected contributions sponsored by the presently participating trade associations: ICMA, ISDA and ISLA can be found under Roadmap.md.

  • Releases can be tracked on the CDM Releases page.

Contributing

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 [email protected].

Contribution via Rosetta

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:

  1. Create a Workspace for the CDM in Rosetta Design
  2. Review and contribute change in Rosetta Design - which will create PR in the rosetta-models organisation
  3. Create a PR to the Finos Github. See instructions here

Contributing via GitHub

  1. Fork it (https://github.com/finos/common-domain-model)
  2. Create your feature branch (git checkout -b feature/my-new-feature)
  3. Make a change - hint you can make changes to Rosetta files directly on your desktop using the Rosetta VS Code plugin
  4. Read our contribution guidelines and Community Code of Conduct
  5. Commit your changes (git commit -am 'My New Feature')
  6. Push to the branch (git push origin feature/my-new-feature)
  7. Create a new Pull Request

Documentation

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 [email protected]

FINOS CDM Project Maintainers

FINOS Common Domain Model is maintained by FINOS members and the wider open source in finance community.

The following are the FINOS CDM maintainers and the firms they represent.

FINOS CDM Maintainer Representing Capacity GithubID
Gabriel Callsen ICMA OrgRep gabriel-ICMA
Tom Healey ICMA OrgRep tomhealey-icma
Vernon Alden-Smith ISDA OrgRep valdensmith
Eleonora Acuna ISDA OrgRep eacunaISDA
David Shone ISDA OrgRep dshoneisda
Adrian Dale ISLA OrgRep ADaleISLA
Chris Rayner ISLA OrgRep chrisisla
Minesh Patel Regnosys OrgRep minesh-s-patel
Leo Labeis Regnosys OrgRep lolabeis
Hugo Hills Regnosys OrgRep hugohills-regnosys
Lyteck Lynhiavu ISDA OrgRep llynhiavu
Manuel Martos TradeHeader OrgRep manel-martos
Marc Gratacos TradeHeader OrgRep mgratacos

If you would like to get in touch with the CDM maintainer team, contact them through their mailing list at https://lists.finos.org/g/cdm-maintainers. You can do so by first subscribing at [email protected] and posting at [email protected] .

License

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.

About

The Common Domain Model (CDM) is a standardised, machine-readable and machine-executable blueprint for how financial products are traded and managed across the transaction lifecycle. It is represented as a domain model_and distributed in open source.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 94.2%
  • JavaScript 2.1%
  • Python 2.1%
  • CSS 0.9%
  • Shell 0.3%
  • MDX 0.2%
  • Other 0.2%