finos / community

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

Software Project Contribution and Onboarding - Vuu #206

Closed chrisjstevo closed 1 year ago

chrisjstevo commented 2 years ago

Business Problem

User interfaces for financial applications often have differing requirements to generic UI Frameworks. In general these can be summarised as:

Proposed Solution

Vuu is a framework for building front end applications for trading and risk use-cases. It is split into two components, the first is a Scala based server component which acts as the server side cache of data, this provides a table model for representing and joining live tables of data from various sources, it also provides a framework for sorting, filtering and treeing on the server based on client requests. It also provides viewports onto the trees or tables for multiple users. The server also provides an ability to tick data quickly through the system for rapid updates to individual rows.

The second component is a React based UI grid and layout framework that manages the communications with the server, that renders the visible viewports for the user (whether they be tree or flat table based) and that gives the impression to the user that all of the data that a user is viewing is seamlessly available on the client.

The glue that connects these pieces is a web-worker/websocket layer that handles realtime updates from the server based on updates on the underlying datasource or based on user actions on the front end, such as scrolling or sorting.

Tentative Roadmap

The initial phase would be working towards a v1.0 release of the framework, where we can support all of the necessary use cases for building trading front ends. Its felt we are between 80% and 90% of the way there with the existing code base.

A phase 2 release would incorporate additional functionality such as real time charting, additional user widgets for specialised forms of visual filtering and the ability to support big data streaming uses cases (10bn+ rows)

Current State

The project began in 2014, it was worked on as a PoC for several years before gaining more momentum towards a functional beta release in 2020/2021. The project has now beed adopted by UBS as part of the strategic front office UI toolkit.

Existing Materials

The software is already opened source on Github under an Apache 2.0 licence.

Code: https://github.com/venuu-io/vuu/ Book: https://venuu-io.github.io/vuu/

Development Team

Maintainers

Chris Stevenson, UBS, chris-za.stevenson@ubs.com, Founding Developer, Admin, chrisjstevo Steve Heron, UBS, steve.heron@ubs.com, Founding Developer, Admin, Dimitar Dimitrov, UBS, dimitar.a.dimitrov@ubs.com, Developer Michael Stonestreet, UBS, michael.stonestreet@ubs.com, Developer Michael Banham, UBS, michael.banham@ubs.com, Developer, Admin Allan Jakobsen, UBS, allan.jakobsen@ubs.com, Product Owner Marina Bambang, UBS, marina.bambang@ubs.com, Product Owner

Confirmed contributors

(as above)

Target Contributors

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!

Kick-off meeting

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

This is amazing @chrisjstevo! Thanks for getting this going! Paging @neilslinger for visibility here!

@jgavronsky @maoo can you update the checklist to 1. reflect the TSC approval step and 2. I think the contribution looks good enough to be fast tracked for TSC approval (given it's OSS and has already identified contributors).

As a general suggestion, I think that now that we have the TSC, TSC approval should be much front loaded and code validations can happen in parallel or after.

Thanks!

mindthegab commented 2 years ago

@ColinEberhardt This contribution is ready for TSC review. I've put it in the backlog. If there's room, it might make sense to add to the agenda for Wednesday.

ColinEberhardt commented 2 years ago

HI @mindthegab - it is on our agenda for tomorrow https://github.com/finos/technical-steering-committee/discussions/37, although this will just be a high-level introduction. If the FINOS team have specific priorities / deadlines regarding Vuu / ISDA / Desktop Agent Bridge, it would be good to understand this.

chrisjstevo commented 2 years ago

@ColinEberhardt @mindthegab we're very keen to get something incubating from a UBS perspective. This is our first major contribution and there is quite a lot of workflow we need to do internally when the repo and scaffolding have been created to get productive.

@ColinEberhardt if you'd like me to join the meeting tomorrow to discuss it am happy to.

mindthegab commented 2 years ago

@ColinEberhardt No specific deadline, but I did try to reflect priorities / readiness for TSC review as agreed by:

  1. Adding it at the top of the "Prioritized Backlog" column of the TSC Kanban (currently not public yet)
  2. Labeling this issue as "ready-for-review"
  3. Assigning it to you as proxy for the TSC

Feel free to liaise directly with @chrisjstevo and assign back to me a comment / outcome once the TSC has had a chance to review.

ColinEberhardt commented 2 years ago

Hi @chrisjstevo - we didn't really have time to slot you in for the meeting yesterday, lots of other house-keeping!

However, the TSC are very keen to hear more about this project. Are you happy for us to arrange a demo to the group? If it helps, please contact me via email to arrange.

ColinEberhardt commented 2 years ago

The following is a summary of the TSC’s assessment of the Vuu contribution, evaluating this project with respect to our contribution principles.

General background information:

The TSC advises that the FINOS Team and Governing Board accept this contribution.

Contributions must be aligned with the purpose of FINOS

The purpose of FINOS is to drive collaboration and innovation within Financial Services through open source software. The problem which this project tackles (rendering and navigating very large datasets) is quite common within FS organisations, furthermore, there is little competitive advantage to be had by building a proprietary solution in isolation. This is an area that is ideal for multi-party collaboration.

A proposed standard must not compete with other FINOS standards

This is a software project, not a standard.

An open source project that is a component of a commercial offering must provide tangible value in its own right

This is entirely open source, without any commercial components.

Contributions should generate interest within the member organisations

The display and navigation of large volumes of data is a ‘classic’ problem within financial services. Most of the TSC members have built or use similar technology. The alignment with FINOS is clear and obvious, a number of TSC members expressed a direct interest in this project.

A proposed contribution that competes with an existing FINOS project should consider potential routes to a merger

There are some clear parallels between Vuu and Perspective, both provide the ability to view and analyse streaming datasets. However, the two projects do have a different focus. Perspective is more aligned with the needs of analysts, allowing the creation of dashboards that compete with the likes of Tableau. Whereas Vuu is targeted more at the needs of developers, and would likely be incorporated into much larger platforms (e.g. trading platforms, risk systems). There may be some opportunities to exchange ideas and approach, however, it is unlikely that the two would (or should) merge.

Contributions should be long-term projects

This project has been under development for a number of years and UBS is keen to start using this technology within their own applications.We are comfortable with this informal commitment.

TheJuanAndOnly99 commented 1 year ago

Project onboarding completed, please find announcement at https://groups.google.com/a/finos.org/g/announce/c/i7rzIhlj0e0/m/EygO4fgVBAAJ. Congratulations to @chrisjstevo and team!