Skip to main content

Runtime Topology: YU16-cdm-instruments

The inherited tier is unchanged: the same services, ports, cluster members and observability as YU15. This state widens the instrument universe those services carry; CDM-shaped reference data, Treasury pricing, bond-aware post-trade and display; and adds one route to reference-data. No component is added or removed; no deterministic-core process changes.

Entrypoints​

EntrypointProcessPurpose
GET /instruments, GET /instruments/{instrumentKey}reference-data (:18085)CDM instrument records
GET /instruments/control-snapshotreference-data (:18085)general-name control snapshot (same store/watermark as /stocks/control-snapshot)
GET /stocks*reference-data (:18085)retained inherited routes; the YU04 feed's bootstrap
POST /orders (REST), FIX Dcluster gatewayunchanged; gateway-side UST- face validation added
pricing.<instrumentKey>price-publisher (:18100)unchanged subjects; Treasury payloads extended

Components​

ComponentRoleState
reference-datainstruments module + retained stocks module over one store and one outbox watermarkSQL + outbox (inherited)
price-publisherequity/option quoting inherited; Treasury walk with per-batch shared rollin-memory quote state
order-matcher clusterunchanged deterministic core; registers the ten new keys through the inherited control feedreplicated (unchanged format 4)
cluster gatewayunchanged routing; UST- face validation before submissionstateless
trade-processorbooking gains Treasury average-cost and Rejected fail-closed landingSQL
position-servicerejection-aware trade readsSQL
risk-extractjoin gains instrument static; renders schema-2 CSVobject store (write-once, inherited)
web-front-endasset-class filter, Treasury labels/valuationstateless

Networking​

PathTransportNotes
trade-processor β†’ reference-dataHTTP GET /instruments/{key}booking-time Treasury metadata; 2 s / 5 s timeouts, fail closed
trade-service β†’ reference-dataHTTP GET /instruments/{key}order validation resolves the CDM record
order-matcher β†’ reference-dataHTTP GET /instruments/control-snapshotbootstrap default at this layer; env override unchanged
everything elseinheritedno new paths, subjects or ports

Startup / Health Order​

  1. database β†’ reference-data (instruments seed load asserts CDM conditions; a violation fails startup loudly)
  2. NATS β†’ price-publisher (Treasury seeds from snapshot; no external calls)
  3. cluster members β†’ gateway (unchanged)
  4. post-trade services in any order; booking-time metadata is resolved per trade, fail closed

Ordering beyond the database is not load-bearing: every consumer of the new data either retries (feed subscribers) or fails closed per request (booking metadata).

Degraded Behavior​

ConditionBehavior
reference-data down at booking timeA UST- booking persists a Rejected trade ("Treasury reference metadata is unavailable") and publishes it; no position updates. Equity/ETF bookings do no lookup and are unaffected.
reference-data down at bootstrapThe replica bootstrap retries against /instruments/control-snapshot exactly as it did against /stocks/control-snapshot; same code, repointed URL.
A Treasury matures mid-sessionIts quotes are suppressed and new orders are rejected at the validation boundary; resting state is untouched (earliest seed maturity is 2028-06-30).
Unknown UST- key requestedPrice API returns 404 with no fallback quote; unknown equities keep the inherited lazy fallback.
Seed FIGI missingThe row loads with BBGTICKER only and a warning; startup never fails for an unresolvable identifier.
CDM condition violated in seedStartup fails loudly (throw); a malformed universe never serves.
Both control-snapshot routes driftThey cannot drift independently; one handler, one store, one watermark; the contract test asserts equality.