community
community copied to clipboard
Rune (was Rosetta) DSL for Reg SIG - Software Project Contribution and Onboarding
Business Problem
Regulatory reporting is costly and inefficient. Every year, the financial industry spends billions trying to comply with often complex data requirements. For every reporting regime and jurisdiction, firms must typically sift through 100s of pages of legal text, which they must then manually interpret and code in their IT systems.
As a result, while many financial institutions share the same reporting obligations, they usually implement their logic in slightly different ways because of siloed technology approaches. This exposes firms to non-compliance risk and fines and degrades the quality and comparability of the data that regulators collect.
Proposed Solution
Rosetta is an open-source Domain-Specific Language (DSL) that allows industry members to develop, test and share regulatory logic in a system- and technology-agnostic way.
Rosetta empowers many users within a firm to take part in “digitising” (i.e. interpreting and codifying) reporting rules, without the risk of loss-in-translation once they get implemented in IT systems. Those digitisers can work across organisations’ boundaries and share that logic with their peers, allowing firms that all have to comply by the same deadlines to mutualise the implementation effort.
The language itself is designed to be human-readable, so that domain experts without programming experience (e.g. operations or compliance professionals) can write fully functional regulatory logic directly – a bit like in Excel.
Functional logic expressed in the Rosetta DSL is automatically translated into a variety of programming languages. This code-generation mechanism allows implementations to be deployed onto many platforms and technologies. It also supports a test-driven approach, where digitisers can test the regulatory logic live using auto-generated executable code.
A document indexation and referencing feature allows to tie any piece of functional logic to external texts or documents. This makes the reporting process auditable end-to-end, from the executable code back to the regulatory text or any technical specification document.
Tentative Roadmap
Success of this project means:
- Rosetta supports a growing body of reporting obligations being digitised and contributed under FINOS, thereby promoting the “Reg SIG” agenda.
- Those digitised regulations are used in live reporting implementations and deployed on a variety of technology platforms (including by vendors in the “RegTech” market).
- Code generators into further languages are contributed by FINOS members for integration in their chosen technology platform.
2022 Q2. Initial contribution, DSL + 7 code generators contributed. Demonstrate downstream integration with Morphir (another FINOS project) as execution engine.
Note. The proposed initial contribution (DSL + code generators) comprises the full open-source core of the Rosetta platform. There is no dependency on proprietary components in this contribution. For further details please see: https://rosetta-technology.io/open-source.
2022 Q4. Code generation extended to cover reporting logic in other languages. Leverages semantic formalisation (“type system”) roll-out.
2023 Q1. Open-sourcing of a Rosetta editor. A free version is currently available (used by 1000s of industry members), although not open-source ready.
Current State
Current state. Rosetta is being used in several industry-wide projects in production stage.
History. Rosetta began to be developed in 2017 and was first deployed in 2018 through an industry mandate to build a standardised model for derivatives post-trade operations called the “Common Domain Model” (CDM). Initially sponsored by the International Swaps and Derivatives Association (ISDA), this mandate has since expanded to support other markets beyond derivatives. Rosetta was open-sourced in 2019 alongside the CDM.
Since then, Rosetta has been deployed for regulatory reporting applications under a global industry programme called Digital Regulatory Reporting (DRR). Through DRR, Rosetta is used to develop, test and deploy standardised, executable logic for the next wave of G20 trade reporting obligations, starting with a production implementation of the US CFTC regime this year. DRR leverages the CDM to represent inputs into the reporting process as CDM trade events.
Following the launch of DRR, Rosetta has served as a platform to 100s of users from the industry (financial institutions and technology and service providers). Throughout 2021, there has been over 260 model releases and 50 unique contributors across the various CDM and DRR projects. Together those users have contributed to delivering over a 70% coverage (to date) of the new US CFTC reporting rules.
Several financial institutions are now planning to go live with a reporting implementation based on DRR and using Rosetta.
Although Rosetta specifically focuses on the regulatory reporting application, its broader capabilities for expressing data and logic means that it has areas of contact with other FINOS projects, namely Legend and Morphir. Therefore, some work has already been undertaken to look at the potential integration points between Rosetta, Legend and Morphir that could maximise each of the platform’s strengths.
In 2020, along with the initial Legend contribution to FINOS, a pilot project based on the CDM demonstrated the portability of Rosetta to/from Legend using code generation. Since then, several extensions of the CDM (such as exotic and commodities derivative products) have been developed using Legend and contributed back to the CDM repository through Rosetta. In turn, some of those extensions have been directly leveraged in DRR to build the reporting logic for those products.
Earlier this year, the Morphir, Bosque and Rosetta teams took part in an innovation event (“TechSprint”) that leveraged Morphir to execute some of the CFTC rules built in Rosetta, combining exclusively open-source components. This use case demonstrated interoperability between Morphir and Rosetta whilst also enabling the Bosque validation layer on the CFTC regulation (through the existing Morphir-Bosque integration). The outcome of this TechSprint, a Rosetta-Morphir code generator, is planned to be included in the initial Rosetta contribution.
The hosting of Rosetta under FINOS is intended to provide a collaboration environment to further explore those integration opportunities as well as with other projects in the context of the Reg SIG.
Existing Materials
GitHub repos (all public): https://github.com/REGnosys/rosetta-dsl https://github.com/REGnosys/rosetta-code-generators
Rosetta DSL docs: https://docs.rosetta-technology.io/rosetta/rosetta-dsl/
Development Team
Maintainers
Full Name | Company | GitHub | |
---|---|---|---|
Minesh Patel | REGnosys | [email protected] | minesh-s-patel |
Hugo Hills | REGnosys | [email protected] | hugohills-regnosys |
Confirmed contributors
Most of the code generators that are included in the project's initial contribution have been developed through engagement with the industry community, some of which are included in the list below. That list is expected to expand as we are currently confirming further members who have expressed an interest in continuing to contribute as the language develops.
Full Name | Company | GitHub | |
---|---|---|---|
Tom Snee | Axoni | [email protected] | @axtsnee |
Vincent Juge | Fragmos Chain | [email protected] | @vjuge |
Adrian Miley | JP Morgan | @AdrianMileyJPM | |
Simon Cockx | KU Leuven | [email protected] | @SimonCockx |
Dennis Huebner | TypeFox | [email protected] | @dhuebner |
Marc Gratacos | TradeHeader | [email protected] | @mgratacos |
Target Contributors
We are particularly interested in contributions from the following profiles:
- Engineers in Regulatory IT teams at global financial institutions
- Product owner / developer at RegTech companies with a reporting offering
- Computer science academics / researchers in the field of software language and semantics
Infrastructure needs
Describe the FINOS infrastructure you will need for this project, in addition to a GitHub repository. The FINOS team will connect with you before setting up any of this infrastructure
- Recurring meetings
- Mailing list
- A project on the Legend Studio shared instance
What's next?
Upon submission of this project proposal, the FINOS team will get in touch with you to discuss next steps.
Contribution process (v. 1.1, last updated on December 20, 2021)
Below is the list of tasks that FINOS Team and the contribution author go through in order to complete the FINOS contribution process. Please do not edit these contents at contribution time!
FINOS Project Governance and Infra
- FINOS overview (if necessary)
- FINOS Maintainers cheatsheet
- FINOS Project/Standards Governance
- FINOS Project Lifecycle
FINOS Contrib POC
- [x] Identify and Assign FINOS Project Coordinator - @maoo
- [x] Identify and Assign FINOS Strategic Advisor - @jgavronsky
Proposal (Lead Maintainer)
-
[x] Lead maintainer to send out announcement to [email protected] using this template:
Dear FINOS Community, We would like to propose a new FINOS project. Please review the proposal details at (_TODO: add link to the GitHub issue proposal_). If you're interested in participating, please :+1: the GitHub issue proposal and drop a comment with your name, org and email Thanks a lot,
Identify project meta (Lead: FINOS Contrib POC, Support: FINOS Marketing)
- Project main coordinates
- [x] Project Name -
Rune
- [x] Project Slug -
rune
- repo slugrune-dsl
- [x] Does the name have a registered trademark? -
No, checked with LF that Rune is a valid name
- [x] Logo -
Yes, mao has it
- [x] Project Name -
- [x] Category and sub-category (for FINOS Landscape) -
Data & Business Logic > Frameworks
- [x] Is there existing code? If so, is it public? If not, can you grant read access to user github.com/finos-admin ?
https://github.com/REGnosys/rosetta-code-generators
andhttps://github.com/REGnosys/rosetta-dsl
- [x] Was the project ever released? If so, are releases public? And what's the latest released version? -
https://github.com/REGnosys/rosetta-dsl/tags
- [x] Team composition: lead maintainer and other maintainers - see above
- Are meetings currently held for the project? -
setting up meetings after contribution is complete
- Are meeting minutes, agenda and attendance tracked? -
setting up meetings after contribution is complete
- [x] Is Continuous Integration used? If so, which system is used? - yes, with GitHub Actions
- [x] Is there an existing Documentation website? If not, would you like to have one? - https://rosetta-technology.io/
Maintainers, contributors and CLAs (Lead: FINOS Contrib POC, Support: FINOS infra)
- [x] For each maintainer identified in the previous step, collect: the following info:
- Fullname
- GitHub username
- Corporate email address
- [x] Identify other existing contributors (assuming there's a contribution history (eg Git history)
- [x] Check if maintainers and other contributors are all covered by FINOS CLA
- [x] Engage with FINOS Legal team to figure out what’s needed to cover all maintainers and contributors with FINOS CLA
- [x] Reach out to contributors and employers to coordinate CLA signatures
Project Communication Channel(s)
- [x] Ask maintainers which communications channels they'd like to use
- Asynchronous
- [x] GitHub Issues (public)
- [x] Mailing-list - TODO, create a Groups.io email, ie
[email protected]
(see below)
- Synchronous
- [x] FINOS Slack Channel (general public Slack / leadership private Slack) -
setting it up meetings after contribution is complete
- [x] FINOS Slack Channel (general public Slack / leadership private Slack) -
- Create the identified communication channels during infra set up -
using GitHub issues, no mailing list, at least for now
- [x] Link communication channels linked front and center in the project README.md (need the repo in FINOS first)
Code validation (only if code is contributed) (Lead: FINOS Infra)
- [x] All dependencies are resolved and build is successful
- [x] The codebase doesn’t have HIGH or CRITICAL CVEs across direct and transitive libraries - see https://github.com/REGnosys/rosetta-dsl/issues/401
- [x] The codebase doesn’t have any unfriendly licenses across direct and transitive libraries - see https://github.com/REGnosys/rosetta-dsl/issues/424
- [x] (optional - if a build system is provided) The build process runs successfully
- [x] finos-admin is Admin of the GitHub repository to transfer
- [x] The codebase doesn’t include any patent or copyright that conflicts with FINOS Governance and bylaws (to be validated with FINOS Legal team)
- [x] Apply project blueprint contents - see ODP docs
- [x] Ensure that the proper project governance is in the CONTRIBUTING.md file
- [x] All incubating criteria are checked and documented below
Approval (Lead: FINOS Infra)
- [x] Assign issue to Executive Director (@mindthegab) to trigger voting
- [x] (optional) if additional socialization is required, the Executive Director may bring projects to the FINOS Governing Board
- [x] FINOS accepts the contribution (and the contribution process can move forward)
Code transfer (Lead: FINOS Infra)
- [x] Backup (even with screenshot) GitHub permissions of the repository to transfer
- [x] Check GitHub repository transfer requirements:
- [x] finos-admin has
Admin
to all repositories to transfer - [x] finos-admin ia allowed to transfer repositories out of the org
- [x] if the repository is owned by a user (and not an org), the user must be able to transfer the repository to finos-admin
- [x] finos-admin has
- [x] Review FINOS project blueprint contents
- [x] Project title/description in README
- [x] Project badge in README
- [x] License in README
- [x] Contributing in README
- [x]
CONTRIBUTING.md
- [x]
LICENSE
(look for{}
placeholders)
- [x] Check protection settings and disable after transfer if necessary
- [x] Transfer all code assets as GitHub repositories under github.com/finos
- [x] Invite GitHub usernames to GitHub FINOS Org
- [x] Create
<project-name>-maintainers
GitHub team and invite users - [x] Configure
finos-admins
(Maintain
role) andfinos-staff
(Triage
role) team permissions
Infra setup (Lead: FINOS Infra)
- [x] Enable EasyCLA
- [x] Enable RenovateBot
- [x] Enable Branch protection
- [x] Add project to metadata
- [x] Add identities, orgs and affiliations to metadata (deprecated by EasyCLA)
- [x] Add logo to FINOS landscape
- [x] Create
staging
branch onfinos/finos-landscape
- [x] Merge
finos/metadata
changes on master (will udpdatelandscape.yml
infinos/finos-landscape
) - [x] Create PR from
staging
branch onfinos/finos-landscape
- [x] Review Netlify preview
- [ ] Merge PR - https://github.com/finos/finos-landscape/pull/187
- [x] Create
- [x] Add project maintainers emails to [email protected] list
- [x] Add project maintainers GitHub usernames to the project-maintainers Team
- [ ] Onboard project on LF systems (SFDC, Insights, EasyCLA, Groups.io)
Announcement (Lead: FINOS Contrib POC)
- [ ] Lead maintainer works with FINOS marketing to send out announcement to [email protected] , checkout announcement template at the Contribution page
- [ ] Notify FINOS Contrib POC and FINOS marketing (@grizzwolf + finos-marketing internal Slack channel)
Thanks @lolabeis for raising this contribution and let me also take a chance to welcome you to FINOS as our latest Silver Member (important in this context as only Members can propose new contributions).
Given the size and nature of the contribution, I recommend we keep this open for a couple of weeks for socialization. You can also email [email protected] in case you want to solicit more feedback.
Based on the socialization, this contribution should then be reviewed by the newly formed @finos/technical-steering-committee, therefore I suggest @ColinEberhardt consider adding this to the TSC agenda soon.
/cc @jgavronsky
Please see the following FINOS podcast and article below ...
- https://www.finos.org/blog/open-source-in-finance-podcast-breaking-new-ground-in-regtech-through-open-source-techsprint-innovation
- https://www.finos.org/blog/morgan-stanley-microsoft-and-regnosys-break-new-ground-in-regtech-with-finos
+1
+1
+1
+1
+1
Definitely interested in this proposal and how Bosque can continue to contribute.
+1
👍
👍
+1
clearly adding CDM as a FINOS project would help spread its usage and grow the community. there is several challenges that have to be addressed, the more people will be onboarded, hopefully the better and faster solutions would be implemented.
Based on my personal wish list, here are some of the topics I think need to be addressed and eventually to which I'd like to contribute to:
- roadmap: community-led features priorization, versioning (LTS, stable, beta, ...)
- releases compatibility mgt: tooling for backward compatibiliy and migration
- languages : today only the java version seems to fully implement all the functionnalities (types and functions). I suggest also a python version re/ data science & machine learning potential uses cases
Finally, as a welcome gift :) may I suggest the community to take a look to a project I created, related to a kotlin-based DSL, which hopefully would help both BA and IT to create cdm objects. Any comments are welcomed : https://github.com/vjuge/cdmdsl
👍
Thanks @JanKoehnlein and @dhuebner - Good to hear support from the Eclipse foundation as well :-) (which provides the framework that the Rosetta DSL is based on)
+1
clearly adding CDM as a FINOS project would help spread its usage and grow the community. there is several challenges that have to be addressed, the more people will be onboarded, hopefully the better and faster solutions would be implemented.
Based on my personal wish list, here are some of the topics I think need to be addressed and eventually to which I'd like to contribute to:
- roadmap: community-led features priorization, versioning (LTS, stable, beta, ...)
- releases compatibility mgt: tooling for backward compatibiliy and migration
- languages : today only the java version seems to fully implement all the functionnalities (types and functions). I suggest also a python version re/ data science & machine learning potential uses cases
Finally, as a welcome gift :) may I suggest the community to take a look to a project I created, related to a kotlin-based DSL, which hopefully would help both BA and IT to create cdm objects. Any comments are welcomed : https://github.com/vjuge/cdmdsl
Thanks @vjuge that's awesome! And your very fair requests are exactly the motivation for having this project under FINOS, so we can shift a gear on community lead.
@minesh-s-patel We should definitely look at the object-creation DSL - Potentially some connection with the object creator feature that is going to make its way into Rosetta soon?
+1
Hi @lolabeis and team, this looks like an exciting contribution. I do have a few questions ...
- Your core technology is already open source, what benefits are you hoping to achieve by contributing this to FINOS?
- You indicate that the DSL and generators, which are your initial contribution, don't have any dependencies on proprietary components. It would be good if you could elaborate on this, what can you achieve with the open source core? And what do you gain by adding the proprietary components?
- You briefly mention Morphir in your roadmap, how do you see Rosetta working with Morphir and Legend in the future? (to be clear, it doesn't have to - but would be good to explore the potential)
- What level of commitment are you putting behind this project? And are others committing to the development also?
- Is this purely a software project? Or would you consider any part of it to be a potential industry standard?
It would be great if you could talk more to these points when we discuss with the Technical Steering Committee later this week.
TradeHeader is fully committed to this project. We are working with CloudRisk to publish a CDM Python Code Generator, which first version will be available this September 2022.
TradeHeader is fully committed to this project. We are working with CloudRisk to publish a CDM Python Code Generator, which first version will be available this September 2022.
Thanks @mgratacos, great to hear. Having a Python code-gen has been on the wish-list for some time - we know that this will be much appreciated by the community (including @vjuge !)
TradeHeader is fully committed to this project. We are working with CloudRisk to publish a CDM Python Code Generator, which first version will be available this September 2022.
great to hear ! would be amazing if it could include functions and utilities (business event generators, reference resolver, qualifiers, ...)
seems this issue can be closed now ! 😉👍
https://www.linkedin.com/posts/finosfoundation_finos-will-host-common-domain-model-for-isda-activity-6962832102321004546-_NM7?utm_source=linkedin_share&utm_medium=ios_app
The Technical Steering Committee were asked to consider this proposed contribution. Over the past 4 weeks we have met with the Regnosys team and evaluated this contribution against a set of principles which we are developing in order to aid this process.
Summary of our recommendations
The following is a summary of our recommendations to the FINOS Governing Board and FINOS Team. We considered the proposed contribution from the perspective of each principle.
Contributions must be aligned with the purpose of FINOS
The consensus opinion here was very positive, regulatory challenges are a common concern across the industry. A project that seeks to reduce effort expended in meeting regulations is clearly of value to the industry. Effective modelling is an important aspect of many regulations.
An open source project that is a component of a commercial offering must provide tangible value in its own right
Considering that Rosetta is developed by a commercial entity, we paid particular attention to this principle. This was a topic we covered in detail in our meeting with Regnosys earlier in the month.
Rosetta is built using a number of exiting open source projects, most notably the the Eclipse Modelling Framework (EMF). As a result, this provides tooling support for Rosetta without the need for any additional proprietary technology.
Regnosys provide a community edition of their modelling tool. However, with the Eclipse tooling, this isn't needed in order to develop models using the Rosetta DSL.
From the information presented, we are confident that this project will provide tangible value of itself.
A proposed standard must not compete with other FINOS standards
The consensus among the TSC is that Rosetta is a project and not a standard, therefore, this principle doesn't apply. However, we are mindful that a language (i.e. a DSL) could also be considered a standard, as well as a technology project (i.e. a toolchain).
On further discussion, the problem with competing standards is that they lead to fragmentation across the industry. FINOS promotes cooperation within the industry, and as a result should seek to minimise fragmentation, and therefore should not promote competing standards.
We do not believe that Rosetta will result in fragmentation, and FINOS will not be promoting it as a definitive standard. Having multiple options for modelling creates a clear pathway for other regulators to join FINOS.
Contributions should be long-term projects
This project has existed for a number of years and is clearly an important component of Regnosys' product suite. It clearly has longevity.
Contributions should generate interest within the member organisations
It is not immediately apparent that FINOS members would want to contribute to the DSL development itself. However, the data models that are produced will be of obvious interest to member organisations. The combination of open source models and an open source DSL (i.e a modelling language that is not proprietary) is a good combination.
A proposed contribution that competes with an existing FINOS project should consider potential routes to a merger
The Rosetta team recently participated in a 'tech sprint' in collaboration with the Morphir team, resulting in a prototype generator that demonstrated combined value for both projects. The Rosetta team are very open to further collaboration.
Conclusion
It was felt that this potential contribution meets all of our requirements as defined by these principles. Our recommendation is that this contribution should be accepted.
Thanks for this @ColinEberhardt and the whole @finos/technical-steering-committee! Thorough and trasnparent.
Given this is the first recommendation from the pilot TSC, I'll do a brief (silent consensus) outreach to the FINOS Governing Board to see if there's any issues.
Expect an update from me early next week, and if there's no issues we can start onboarding (@maoo @lolabeis).
As promised, the Governing Board has agreed with the TSC recommendation and so I am happy to approve this project for incubation in FINOS. Congratulations @lolabeis and the maintainers team and thank you to @ColinEberhardt and the TSC for such a thorough review.
I am assigning this issue to @maoo to commence license scanning and onboarding - cc @mcleo-d @jgavronsky @robmoffat @grizzwolf
Thank you all. The team stands ready for the onboarding process, and we're looking forward to having this project under FINOS!
emailed contributors to get EasyCLA set up
Emailed Minesh about communication channels
Added to the Regulation Innovation SIG kanban
@lolabeis just checking - is this still an ongoing conversation? It's been over 18 months so I think behooves us to either close the issue or get it done. No pressure either way :)
@mindthegab Let's get it done. I've reached-out internally at FINOS and we'll proceed on your instructions.
@lolabeis Under "Confirmed contributors", I see my name showing up as part of KU Leuven. That's out-of-date of course.