Static Data Server
Overview
Static Data Server (SDS) is the central reference data service for the KeySquare platform. It maintains the canonical store for all static and semi-static data that downstream services — pricing, risk, execution, and reporting — depend on.
Every piece of data managed by SDS can be added (MessageAdd) or edited (MessageEdit) via the platform API.
Simple user-interface is also available in key-ui to manage all SDS data.
SDS owns the authoritative versions of:
- Instruments — Fixed Income Bonds and Interest Rate Swaps (canonical
Instrument) - Instrument Profiles — Display and formatting conventions (value type, precision, close time) per group of instruments
- Instrument Aliases — Custom name-to-instrument-id mappings
- Business Dates — Per-currency current and next business dates, with automatic daily roll (canonical
BusinessDate) - Holiday Calendars — Named calendars with weekend rules and explicit holiday date lists (canonical
HolidayCalendar) - Reference Indices — Floating rate index definitions (e.g. SOFR, EURIBOR) (canonical
Index) - Index Fixings — Historical rate fixings for each reference index (canonical
IndexFixing)
All data is persisted in a supported database (QuestDB or Oracle) and re-published on restart, ensuring consumers always receive a full snapshot.
Installation
Static Data Server can be run via binaries or docker.
The package for this component is
static-data-server-{version}.tar.gz.
Please reach out to us if you'd like to try static-data-server
Please follow the instructions in deployment guide on how to install components.
Remember to register the new application. The simplest way to do this is by importing the app-permissions.json included in the components's package.
Entitlements
The following entitlements must be configured in KeyAccess for the static-data-server application.
If you imported the permissions using the supplied
app-permissions.jsonthen most of these should already be setup for you. However, be aware that any custom data-providers will need to be setup. See feeding data section for more information.
Simplified
| PUB/SUB | Schema | Source | Group |
|---|---|---|---|
| SUB | * | * | static-data-server |
| SUB | KsCanonical.Instrument | * | * |
| PUB | * | static-data-server | * |
Full Detail
| PUB/SUB | Schema | Source | Group |
|---|---|---|---|
| SUB | KsPlatform.MessageAdd | * | static-data-server |
| SUB | KsStaticDataServer.* (RPC requests) | * | static-data-server |
| SUB | KsCanonical.Instrument | {data-provider} | * |
| PUB | KsPlatform.MessageStoreEnvelope | static-data-server | * |
| PUB | KsPlatform.MessageAddAck | static-data-server | * |
| PUB | KsStaticDataServer.* (RPC responses) | static-data-server | * |
| PUB | KsStaticDataServer.* (RPC requests) | * | {data-provider} |
| PUB | KsStaticDataServer.InstrumentIdReverseMapping | static-data-server | * |
| PUB | KsStaticDataServer.InstrumentWish | static-data-server | * |
| PUB | KsCanonical.InstrumentProfile | static-data-server | * |
| PUB | KsCanonical.Instrument | static-data-server | * |
| PUB | KsCanonical.BusinessDate | static-data-server | * |
| PUB | KsCanonical.HolidayCalendar | static-data-server | * |
Startup Dependencies
SDS depends on keysquare-platform and configured database being healthy before it starts.
In a typical platform boot sequence:
aeron-media-driverkey-accesssequencerrelay-cache,relay-livestatic-data-server← starts here
SDS signals readiness via a ReadinessState.READY monitoring event.
Applications should monitor static data server's ApplicationStatus when making requests. LivenessState.ONLINE and ReadinessState.READY indicate the service is healthy
Feeding Data
SDS acts as an aggregator and enrichment layer between external data providers and platform consumers.
Recommended way to feed data to SDS is to use the provided java data-provider-api.
For all workflows (except realtime instrument refresh), no additional configuration is required in sds.
Note: you will need to permission your data-provider application appropriately.
See instruments for details of all instrument workflows.
See data provider for details on how to setup a custom data provider.
User Interface
SDS data is viewable and editable in Key UI under the module named static-data-server. From this module you can:
- Browse and edit instruments, business dates, calendars, profiles, indices, and fixings
- Search for instruments locally or via external data providers
- Manage instrument aliases
- Manually roll business dates
To enable the static-data-server user interface:
- Update configuration for application
web-data-server- Update configuration:
KS_WEB_DATA_SERVER_UI_MODULESby appendingstatic-data-server(comma separated)
e.g.KS_WEB_DATA_SERVER_UI_MODULES=static-data-server,price-engine,curve-engine,analytics-engine - Restart web-data-server
- Update configuration:
- Login to key-ui using an account that has admin roles
- Navigate to Admin → Modules
- Click on Static Data Server from module list
- Enable the module and hit Save
- Note: make sure the appName in module configuration matches the app name you used when installing the application

If enabled, successfully you'll see the following new menu items in the side-bar:

Topic Structure
| Data Type | topicSource | topicGroup | topicId |
|---|---|---|---|
| Instrument | static-data-server | {type}{currency} e.g. BUSD | instrumentId |
| Business Date | static-data-server | static-data-server | {currency} e.g. USD |
| Holiday Calendar | static-data-server | static-data-server | {calendarName} |
| Instrument Profile | static-data-server | static-data-server | {profileName} |
| Reference Index | static-data-server | static-data-server | {indexName} |
| Index Fixing | static-data-server | {date} | {indexName} |
| Instrument Alias | static-data-server | static-data-server | {alias} |
Instrument topicGroup is prefixed by instrument type:
| Instrument Type | Prefix | Example topicGroup |
|---|---|---|
| Bond | B | BUSD, BGBP, BEUR |
| IR Swap | S | SUSD, SGBP |
| IR Future / Bond Future | F | FUSD |
Detailed Topics
- Instruments — Instrument lifecycle, ID generation, data providers, search, aliases
- Business Dates — Per-currency dates, auto-roll configuration, manual override
- Holiday Calendars — Calendar definitions, weekend rules, date adjustment
- Instrument Profiles — Display profiles, defaults, Bloomberg integration
- Indices & Fixings — Reference index definitions and historical fixings
- Configuration Reference — All
KS_SDS_*environment variables