Skip to content

The CDM is a model for financial products, trades in those products, and the lifecycle events of those trades. It is a open source standard that aligns data, systems and processes and is available as code in multiple languages for easy implementation across technologies.

License

Notifications You must be signed in to change notification settings

dackattack218/common-domain-model

Repository files navigation

FINOS - Incubating

CDM - Common Domain Model

Read the full docs here!

What is the CDM

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.

See more here

Purpose

A single, digital processing standard for trade events and actions enhances financial markets' operational efficiency in several ways:

  • Enables inter-operability and straight-through processing across firms, solutions and platforms, reducing the need for reconciliation caused by variations in how each firm records trade lifecycle events.
  • Accelerates financial technology innovation by providing a common, readily operational foundation for how technologies like distributed ledger, smart contracts, cloud computing, and artificial intelligence can be applied to financial markets.
  • Delivers better regulatory oversight, promotes transparency and alignment between regulators and market participants and enables consistency in regulatory reporting, by providing a standard representation of trade data and supporting machine executable reporting requirements.

Design Principles

To support these objectives, the CDM is built according to a 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

These design principles are further detailed in the https://cdm.docs.rosetta-technology.io/source/contribution.html#design-principles section of the CDM documentation.

Governance

The CDM governance framework regulates the development of the CDM in open source.

Scope

The product scope of the CDM includes OTC derivatives, cash securities, securities financing, and commodities.

CDM Components

The CDM is made of three sets of components, as laid-out in the CDM components diagram below:

  • The CDM Distribution (in blue)
  • The Rosetta DSL (in grey)
  • CDM Applications (in green)

.. figure:: images/cdm-components-diagram.png

CDM Distribution

The CDM distribution is openly accessible to all industry participants, subject to the CDM open source licence. This distribution is fully downloadable.

Development setup

The CDM is built using maven and can be built using the standard maven convensions

mvn clean install

See here for more infomation.

Roadmap

TBD

Contributing

See guidelines here.

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/cdm)
  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]

License

TBD

About

The CDM is a model for financial products, trades in those products, and the lifecycle events of those trades. It is a open source standard that aligns data, systems and processes and is available as code in multiple languages for easy implementation across technologies.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 96.0%
  • Python 1.3%
  • JavaScript 1.3%
  • Other 1.4%