Documentation Index

Fetch the complete documentation index at: https://support.lusid.com/llms.txt

Use this file to discover all available pages before exploring further.

Understanding Mesa architecture

Prev Next

Mesa is FINBOURNE's dashboarding and business intelligence tool for LUSID, giving you a flexible, configurable way to visualise and monitor your data in near real time.

Whether you're tracking portfolio performance or monitoring operational workflows, Mesa lets you build and share tailored dashboards directly on top of your LUSID environment - no manual exports or synchronisation steps required.

Important

This feature is in Early Access and is subject to change.

Architecture

Mesa sits between the FINBOURNE APIs and the applications that display your data, such as Mesa dashboards and LUSID web. Rather than querying the APIs directly each time data is needed, Mesa maintains a shared database that applications read from, enabling fast filtering, grouping, and sorting response times.

The architecture has four core components:

Mesa Server

Mesa Server is the backend service that:

  • Authenticates users

  • Fetches data from LUSID for each source

  • Keeps that data refreshed on a regular cycle

  • Serves the live data connection to each dashboard

Mesa Preloader

Mesa Preloader is a separate background process that proactively fetches data for source factories configured for preloading.

Rather than waiting for a user to open a dashboard, Mesa Preloader keeps these shared sources continuously up to date. When a dashboard opens, the data is already available and appears instantly.

Mesa Database

Mesa Database is the shared data store used at runtime. It holds:

  • Live data for each active source

  • Metadata and version history of each source

  • Registry of source factories

Note that configuration (dashboards and source factory definitions) is stored in LUSID Workspaces rather than the database. The Mesa Database holds live, in-flight data only.

Mesa Dashboards

Mesa Dashboards is the user-facing web application where you can:

  • Build and view dashboards

  • Configure widgets

  • Create source factories

It connects to Mesa Server to receive live data. See Using Mesa dashboards to monitor live data.

1. Mesa Server and Preloader fetch from FINBOURNE APIs periodically based on source type. Mesa Database stores data in tabular format.
2. Mesa Server handles sources created on request using parameters provided by the user. It reads and writes fetched rows in Mesa Database.
3. Mesa Preloader handles source factories that have been marked for preloading. It creates sources with fixed parameters from the source factory and writes fetched rows to Mesa Database.
4. Users communicate with Mesa Server via a WebSocket. Mesa Server requests data from the Mesa Database rather than the original sources, enabling faster response times for group, filter, and sort operations.

Configuration and workspaces

Mesa's configuration is stored in LUSID workspaces. Two types of workspace item drive Mesa's behaviour:

  • Mesa source factories: Define the type of data to fetch and the parameters used to retrieve it. Once published, they are visible to your whole organisation as a curated set of ready-to-use data sources.

  • Mesa dashboards: Define a dashboard's sources, widgets, and layout - the full specification of what a dashboard displays and how.

1. Mesa Server and Preloader load mesa-source-factory workspace items to create sources. They define the source type and parameters.
2. Mesa Dashboards load mesa-dashboard workspace items to render dashboards. They define the dashboard’s sources, widgets, and context.

Structure

Mesa organises data through a chain of five concepts. Each concept builds on the one before it:

Source types

A source type is defined and maintained by FINBOURNE. It represents a specific category of data, such as portfolios or valuations, and defines the base shape of that data, including:

  • The parameters it accepts

  • The columns the resulting data will have

Source types do not include additional data such as address keys or custom properties; these are added at the source factory level.

The polling cadence at which Mesa fetches data is configured at the source type level, and is controlled by FINBOURNE.

Mesa currently supports source types based on LUSID and Workflow Service data. Support for additional FINBOURNE services is planned for a future release.

Source factories

You can define a source factory to build on top of a source type.The source factory inherits the base fields of its source type and lets you define the shape, behaviour, and parameters of the data source for your specific use case.

For example, you might build a UK Equity Valuation factory on a valuation source type with the scope and recipe already fixed - the user just chooses the effective date.

Source factories are published to your LUSID Workspace and are visible to your whole team as a ready-to-use set of data sources. You define the following when creating a source factory:

  • Location: The workspace, group, name, and optional description to store your source factory as a LUSID workspace item.

  • Execution: Control the following:

    • Whether the source factory is enabled

    • Whether data is preloaded so it is available before a user opens a dashboard

    • Which user account makes the underlying API call

  • Entitlements: The user defining the preload must have access to all of the underlying data. Consumers of the preloaded data only require access to the workspace where the dataset is stored. More fine-grained entitlement controls are planned.

  • Parameters: Each parameter from the underlying source type can be set to:

    • Locked: Parameters are fixed at the source factory level; any widget using this source factory inherits that value and cannot change it.

    • Editable: Parameters can be configured by the user when they set up a widget.

  • Additional data: Where the source type supports it, you can include additional properties and address keys beyond the base fields. Each additional data item requires a key and a unique ID, with an optional name and description.

Sources

A source is a live instance of a source type or source factory, that is, an up-to-date feed of rows that widgets subscribe to.

To create a source:

  1. Choose a source type or factory.

  2. Supply any remaining parameters.

  3. Name the source.

Mesa fetches the data, stores it in the Mesa Database, and keeps it refreshed on a regular cycle.

Each source has a version number that increases every time its data is refreshed, so you are always looking at current data. A single source can be shared by many widgets on the same dashboard, with each widget shaping the data differently through its own pipeline.

Dashboards

A dashboard is a saved, shareable display that holds:

  • The sources it uses

  • The widgets it displays

Dashboards are saved in a LUSID Workspace and can be kept private or shared with your team. For details on creating and configuring dashboards, see Using Mesa dashboards to monitor live data.

Widgets

A widget is a single visualisation on a dashboard. Mesa supports several widget types including:

  • Grids

  • Bar charts

  • Pie charts

  • Time-series charts

  • Stat displays

  • Scorecards

Each widget has a pipeline that defines:

  • Which source the widget reads from

  • How the source data is filtered, aggregated, and sorted before being displayed

Because each widget has its own pipeline, multiple widgets can share a single source while each showing a completely different slice of it.