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:
Choose a source type or factory.
Supply any remaining parameters.
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.
