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