finos / community

FINOS Community, Project and SIG wide collaboration space
http://community.finos.org
65 stars 28 forks source link

Rune (was Rosetta) DSL for Reg SIG - Software Project Contribution and Onboarding #197

Closed lolabeis closed 6 months ago

lolabeis commented 2 years ago

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:

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 Email GitHub
Minesh Patel REGnosys minesh.patel@regnosy.com minesh-s-patel
Hugo Hills REGnosys hugo.hills@regnosys.com 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 Email GitHub
Tom Snee Axoni tom.snee@axoni.com @axtsnee
Vincent Juge Fragmos Chain vjuge@fragmos-chain.com @vjuge
Adrian Miley JP Morgan @AdrianMileyJPM
Simon Cockx KU Leuven simon@sikanda.be @SimonCockx
Dennis Huebner TypeFox dennis.huebner@typefox.io @dhuebner
Marc Gratacos TradeHeader mgratacos@tradeheader.com @mgratacos

Target Contributors

We are particularly interested in contributions from the following profiles:

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

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 Contrib POC

Proposal (Lead Maintainer)

Identify project meta (Lead: FINOS Contrib POC, Support: FINOS Marketing)

Maintainers, contributors and CLAs (Lead: FINOS Contrib POC, Support: FINOS infra)

Project Communication Channel(s)

Code validation (only if code is contributed) (Lead: FINOS Infra)

Approval (Lead: FINOS Infra)

Code transfer (Lead: FINOS Infra)

Infra setup (Lead: FINOS Infra)

Announcement (Lead: FINOS Contrib POC)

mindthegab commented 2 years ago

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 community@finos.org 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

mcleo-d commented 2 years ago

Please see the following FINOS podcast and article below ...

DavidVtFreshAIR commented 2 years ago

+1

AdrianMileyJPM commented 2 years ago

+1

dhuebner commented 2 years ago

+1

SimonCockx commented 2 years ago

+1

mtronci commented 2 years ago

+1

mrkmarron commented 2 years ago

Definitely interested in this proposal and how Bosque can continue to contribute.

AttilaMihaly commented 2 years ago

+1

benjaminmourad commented 2 years ago

👍

JanKoehnlein commented 2 years ago

👍

vjuge commented 2 years ago

+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:

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

lolabeis commented 2 years ago

👍

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)

lolabeis commented 2 years ago

+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?

axtsnee commented 2 years ago

+1

ColinEberhardt commented 2 years ago

Hi @lolabeis and team, this looks like an exciting contribution. I do have a few questions ...

It would be great if you could talk more to these points when we discuss with the Technical Steering Committee later this week.

mgratacos commented 2 years ago

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.

lolabeis commented 2 years ago

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 !)

vjuge commented 2 years ago

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, ...)

vjuge commented 2 years ago

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

ColinEberhardt commented 2 years ago

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.

mindthegab commented 2 years ago

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

mindthegab commented 2 years ago

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

lolabeis commented 2 years ago

Thank you all. The team stands ready for the onboarding process, and we're looking forward to having this project under FINOS!

robmoffat commented 2 years ago

emailed contributors to get EasyCLA set up

robmoffat commented 2 years ago

Emailed Minesh about communication channels

mcleo-d commented 1 year ago

Added to the Regulation Innovation SIG kanban

mindthegab commented 10 months ago

@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 :)

lolabeis commented 9 months ago

@mindthegab Let's get it done. I've reached-out internally at FINOS and we'll proceed on your instructions.

SimonCockx commented 8 months ago

@lolabeis Under "Confirmed contributors", I see my name showing up as part of KU Leuven. That's out-of-date of course.

TheJuanAndOnly99 commented 6 months ago

The contribution process is complete. Thank you @lolabeis and team for your contribution!

See contribution announcement here.