Skip to content

greg-wiltshire/trac

 
 

Repository files navigation

TRAC Data & Analytics Platform

A next-generation data and analytics platform for use in highly regulated environments

FINOS - Incubating

TRAC D.A.P. brings a step change in performance, insight, flexibility and control compared to conventional analytics platforms. By redrawing the boundary between business and technology, modellers and business users are given easy access to modern, open source tools that can execute at scale, while technology integrations and operational concerns are cleanly separated and consolidated across use cases.

At the core of a platform, a flexible metadata model allows data and models to be catalogued, plugged together and shared across the business. Using the principal of immutability, TRAC allows new data structures and model pipelines to be created, updated and executed at any time without change risk to production workflows, guaranteeing total repeatability, audit and control (TRAC).

Documentation and Packages

Documentation for the TRAC platform is available on our website at tracdap.finos.org.

The following packages are available:

Package Description
Model runtime for Python Build models and test them in a sandbox, ready to deploy to the platform
Web API package Build client apps in JavaScript or TypeScript using the TRAC platform APIs

Development Status

Build and Test Integration Compliance Packaging Documentation Status

The current release series (0.4.x) is intended for model development and prototyping. It provides an end-to-end workflow to build and run individual models in a local environment. It also provides the platform APIs needed to build client applications such as web tools or system client system integrations.

The TRAC metadata structures and API calls are mostly complete. Metadata compatibility is ensured within a release series starting from version 0.4.0 - the 0.4.x series will be compatible with 0.4.0 but changes may be introduced in 0.5.0. The metadata model will continue to stabilise before eventually being frozen for version 1.0.0, after which it may be added to but no fields will be removed or changed.

For more information see the development roadmap.

Building TRAC

The core platform services require Java version 11 or higher, using LTS 11 or LTS 17 is recommended. Suitable JDKs are available from Azul and Adoptium:

To build the TRAC platform, clone the repository and run this command in the source directory:

gradlew build     # Windows
./gradlew build   # Linux or macOS

If you are behind a corporate firewall, you may need to use a web proxy and/or point Gradle at a Nexus server hosted inside your network to download dependencies. The Gradle documentation explains how to declare a local mirror in an init script, so that it can be used for all Gradle builds.

Running TRAC

In order to run TRAC you will need to supply some configuration. There is a sample "devlocal" configuration included in the "etc" folder which is set up to use a local backend with data stored under build/run.

Before starting the TRAC services you will need to create a metadata database. There is a tool provided that can deploy the schema and create tenants. To use the "devlocal" setup the supplied config can be used as-is, this will deploy the TRAC metadata schema into an H2 database file.

gradlew :deploy-metadb:run --args="--config etc/trac-devlocal.yaml --task deploy_schema"
gradlew :deploy-metadb:run --args="--config etc/trac-devlocal.yaml --task add_tenant:ACME_CORP"

To run models in TRAC you will need an execution environment. A local execution environment for can be configured by creating a Python venv and installing the TRAC D.A.P. runtime, then editing trac-devlocal.yaml to set the executor venvPath.

python -m vemv path/to/venv/
. path/to/venv/bin/activate     # For macOS and Linux
path\to\venv\Scripts\activate   # For Windows
pip install tracdap-runtime

Once you have a database and an executor prepared, you can start the TRAC services.

gradlew :tracdap-svc-meta:run --args="--config etc/trac-devlocal.yaml"
gradlew :tracdap-svc-data:run --args="--config etc/trac-devlocal.yaml"
gradlew :tracdap-svc-orch:run --args="--config etc/trac-devlocal.yaml"
gradlew :tracdap-gateway:run --args="--config etc/trac-devlocal-gateway.yaml"

To confirm the platform is working you can use the example API calls with a REST client such as Postman. For more information on the platform APIs and how to use them to build applications, check out the application development section in the online documentation.

Contributing

  1. Fork it (https://github.com/finos/tracdap/fork)
  2. Create your feature branch (git checkout -b feature/fooBar)
  3. Read our contribution guidelines and Community Code of Conduct
  4. Commit your changes (git commit -am 'Add some fooBar')
  5. Push to the branch (git push origin feature/fooBar)
  6. Create a new Pull Request

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

License

Copyright 2022 Accenture Global Solutions Limited

Distributed under the Apache License, Version 2.0.

SPDX-License-Identifier: Apache-2.0

About

A next-generation data and analytics platform for use in highly regulated environments

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 77.8%
  • Python 21.0%
  • JavaScript 0.5%
  • Shell 0.3%
  • PLSQL 0.2%
  • Batchfile 0.1%
  • Other 0.1%