ores.refdata Messaging Reference
Table of Contents
NATS messaging reference for ores.refdata. All subjects use the
refdata.v1.> namespace. See ores.nats for transport details.
Each entity follows the standard pattern: list, save, delete, history.
1. Countries
| Subject | Description |
|---|---|
refdata.v1.countries.list |
Retrieve all countries |
refdata.v1.countries.save |
Create or update a country |
refdata.v1.countries.delete |
Delete one or more countries |
refdata.v1.countries.history |
Retrieve version history for a country |
2. Currencies
| Subject | Description |
|---|---|
refdata.v1.currencies.list |
Retrieve all currencies |
refdata.v1.currencies.save |
Create or update a currency |
refdata.v1.currencies.delete |
Delete one or more currencies |
refdata.v1.currencies.history |
Retrieve version history for a currency |
2.1. Message types
Request/reply payloads are JSON serialisations of the structs in
ores.refdata.api/messaging/currency_protocol.hpp and
ores.refdata.api/messaging/currency_history_protocol.hpp:
| Subject | Request type | Request fields | Response type | Response fields |
|---|---|---|---|---|
...currencies.list |
get_currencies_request |
offset (int, 0), limit (int, 100) |
get_currencies_response |
currencies (currency[]), total_available_count (int) |
...currencies.save |
save_currency_request |
data (currency) |
save_currency_response |
success (bool), message (string) |
...currencies.delete |
delete_currency_request |
iso_codes (string[]) |
delete_currency_response |
success (bool), message (string) |
...currencies.history |
get_currency_history_request |
iso_code (string) |
get_currency_history_response |
success (bool), message (string), history.versions (currency_version[]) |
2.2. Events
Change notification is a single event per entity, not per-operation
saved=/=deleted subjects. Defined in
ores.refdata.api/eventing/currency_changed_event.hpp:
| Event name | Payload | Published when |
|---|---|---|
ores.refdata.currency_changed |
timestamp (UTC time point), iso_codes (string[]), tenant_id (string) |
Any currency is created, updated or deleted; iso_codes may carry several codes for batch operations. |
Subscribers receive the event through the ores.nats event channel
machinery (ores.eventing.api event_bus / event_channel_registry)
and can use timestamp to query for changes since that point.
3. Parties
| Subject | Description |
|---|---|
refdata.v1.parties.list |
Retrieve all parties |
refdata.v1.parties.save |
Create or update a party |
refdata.v1.parties.delete |
Delete one or more parties |
refdata.v1.parties.history |
Retrieve version history for a party |
4. Counterparties
| Subject | Description |
|---|---|
refdata.v1.counterparties.list |
Retrieve all counterparties |
refdata.v1.counterparties.save |
Create or update a counterparty |
refdata.v1.counterparties.delete |
Delete one or more counterparties |
refdata.v1.counterparties.history |
Retrieve version history for a counterparty |
5. Books
| Subject | Description |
|---|---|
refdata.v1.books.list |
Retrieve all books |
refdata.v1.books.save |
Create or update a book |
refdata.v1.books.delete |
Delete one or more books |
refdata.v1.books.history |
Retrieve version history for a book |
6. Portfolios
| Subject | Description |
|---|---|
refdata.v1.portfolios.list |
Retrieve all portfolios |
refdata.v1.portfolios.save |
Create or update a portfolio |
refdata.v1.portfolios.delete |
Delete one or more portfolios |
refdata.v1.portfolios.history |
Retrieve version history for a portfolio |
7. Business Units
| Subject | Description |
|---|---|
refdata.v1.business_units.list |
Retrieve all business units |
refdata.v1.business_units.save |
Create or update a business unit |
refdata.v1.business_units.delete |
Delete one or more business units |
refdata.v1.business_units.history |
Retrieve version history for a business unit |
8. Contact Types
| Subject | Description |
|---|---|
refdata.v1.contact_types.list |
Retrieve all contact types |
refdata.v1.contact_types.save |
Create or update a contact type |
refdata.v1.contact_types.delete |
Delete one or more contact types |
refdata.v1.contact_types.history |
Retrieve version history for a contact type |
9. Monetary Natures
| Subject | Description |
|---|---|
refdata.v1.monetary_natures.list |
Retrieve all monetary natures |
refdata.v1.monetary_natures.save |
Create or update a monetary nature |
refdata.v1.monetary_natures.delete |
Delete one or more monetary natures |
refdata.v1.monetary_natures.history |
Retrieve version history for a monetary nature |
10. Rounding Types
| Subject | Description |
|---|---|
refdata.v1.rounding_types.list |
Retrieve all rounding types |
refdata.v1.rounding_types.save |
Create or update a rounding type |
refdata.v1.rounding_types.delete |
Delete one or more rounding types |
refdata.v1.rounding_types.history |
Retrieve version history for a rounding type |
11. Business Centres
| Subject | Description |
|---|---|
refdata.v1.business_centres.list |
Retrieve all business centres |
refdata.v1.business_centres.save |
Create or update a business centre |
refdata.v1.business_centres.delete |
Delete one or more business centres |
refdata.v1.business_centres.history |
Retrieve version history for a business centre |
12. Junctions
A junction joins two entities, so its protocol is about a relationship rather than a row. Every junction model renders the same generated verb set; see Codegen junction meta-model — the junction protocol for the design.
| Verb | Subject | Notes |
|---|---|---|
get_<junction> |
refdata.v1.<junction_plural>.list |
Paged read of the junction rows |
get_<junction>_by_<side> |
refdata.v1.<junction_plural>.list_by_<column> |
Returns the <junction>_view |
save_<junction> |
refdata.v1.<junction_plural>.save |
Batch additive upsert |
delete_<junction> |
refdata.v1.<junction_plural>.delete |
Batch delete by the pair |
count_<junction>_by_<side> |
refdata.v1.<junction_plural>.count_by_<column> |
One per side |
replace_<junction>_by_<side> |
refdata.v1.<junction_plural>.replace_by_<column> |
Only where a side declares :replace_by:; opt-in, and no refdata junction takes it |
The junction plural is the model's #+name, in underscore form. Nine
junctions render the base set – the two reads, save, delete and the
two counts – each with a :list_by: read: calendar_dates,
currency_calendars, currency_countries, currency_currency_groups,
currency_pair_convention_calendars, party_counterparties,
party_countries, party_currencies and
tenor_convention_resolutions. No refdata junction declares
:replace_by:, so no replace_by subject is generated here.
tenor_convention_resolution is read-only: its rows are provisioned
outside the application, so it renders the reads and the counts and no
write verb. calendar_date keeps its write verbs because the calendar
materialisation service writes its rows through the repository.
13. Non-entity protocols
Three protocols carry no entity, because no table backs them.
| Protocol | Subject | Payload |
|---|---|---|
asset_class |
refdata.v1.asset-classes.list |
asset_class_info, a joined catalogue row |
calendar_adjustment |
refdata.v1.calendar_adjustments.export |
calendar_adjustment, a transient DTO built from calendar and calendar_exception rows |
calendar_materialisation |
refdata.v1.calendar_dates.regenerate |
A command with no payload type |
14. Useful Pages
- ores.nats — transport layer: request/reply, subject naming, configuration
- Protocol Reference — all services overview
- ores.refdata — component documentation