Topics Reference
All inter-plugin communication flows through the platform message bus using structured topics. This page is the canonical reference for topic naming, subscription patterns, and ACL scoping.
Topic Naming Convention
platform.{domain}.{scope}.{entity}.{action}
| Segment |
Description |
Examples |
domain |
Functional area |
data, signal, portfolio, oms, ems, ccm, bor, order-book, lifecycle, config |
scope |
Instance ID, deployment ID, security ID, or wildcard |
dgm-polygon-01, PORT-001, AAPL |
entity |
The noun |
order, fill, position, lot, cash, session, feed |
action |
The verb |
created, cleared, executed, changed, status |
Market Data (DGM)
| Topic |
Publisher |
Subscriber |
Payload |
platform.data.eod.{symbol} |
DGM |
Signal, BOR, Valuation |
EODPriceEvent |
platform.data.ohlcv.{symbol} |
DGM |
Signal |
TickEvent / BarEvent |
platform.data.feed.status |
DGM |
Monitoring |
FeedStatusEvent |
platform.dgm.{id}.data.price.eod |
DGM |
Signal, BOR |
EODPriceEvent |
platform.dgm.{id}.data.price.tick |
DGM |
Signal, EMS |
NormalizedTick |
platform.dgm.{id}.data.reference.instrument |
DGM |
All |
InstrumentRefData |
platform.dgm.{id}.data.alt.{subtype} |
DGM |
Signal |
Vendor-specific |
platform.data.corpaction.{source}.{event_type} |
Corp Action DGM |
BOR |
CorporateAction |
Subscription patterns:
- platform.data.eod.* -- all end-of-day prices
- platform.data.ohlcv.* -- all intraday bars
- platform.data.corpaction.** -- all corporate action events
Signal
| Topic |
Publisher |
Subscriber |
Payload |
platform.signal.{instance_id}.alpha |
Signal Engine |
Signal Pool Manager, Portfolio Optimizer |
InsightPublishedEvent |
Subscription pattern: platform.signal.*.alpha
Portfolio
| Topic |
Publisher |
Subscriber |
Payload |
platform.portfolio.{instance_id}.target |
Portfolio Optimizer |
OMS |
TargetAllocation |
Subscription pattern: platform.portfolio.*.target
OMS -- Order Management
| Topic |
Publisher |
Subscriber |
Payload |
platform.oms.{id}.order.created |
OMS |
Compliance, Audit |
OrderCreatedEvent |
platform.oms.{id}.order.modified |
OMS |
EMS, Audit |
Order |
platform.oms.{id}.order.cancelled |
OMS |
EMS, Audit |
Order |
platform.oms.{id}.order.cleared |
OMS |
EMS |
OrderApprovedEvent |
platform.oms.{id}.order.assigned |
OMS |
Audit |
Order |
platform.oms.{id}.basket.created |
OMS |
Audit |
Basket |
platform.oms.{id}.risk.exposure.updated |
OMS |
Portfolio, Risk |
Exposure |
platform.oms.{id}.risk.position.updated |
OMS |
Portfolio, Risk |
Position |
Subscription patterns:
- platform.oms.*.order.cleared -- all cleared orders
- platform.oms.*.risk.* -- all risk updates
OMS -- Compliance
| Topic |
Publisher |
Subscriber |
Payload |
platform.oms.{id}.compliance.check.requested |
OMS |
Compliance Plugin |
ComplianceCheckRequestedEvent |
platform.oms.{id}.compliance.result.published |
Compliance Plugin |
OMS |
ComplianceResultPublishedEvent |
platform.oms.{id}.compliance.override.approved |
OMS |
Audit |
ComplianceOverrideApprovedEvent |
platform.oms.{id}.compliance.rule.created |
OMS |
Compliance Plugin |
ComplianceRuleChangedEvent |
platform.oms.{id}.compliance.rule.updated |
OMS |
Compliance Plugin |
ComplianceRuleChangedEvent |
platform.oms.{id}.compliance.rule.deleted |
OMS |
Compliance Plugin |
ComplianceRuleChangedEvent |
Subscription patterns:
- platform.oms.*.compliance.check.requested
- platform.oms.*.compliance.result.published
OMS -- Allocation
| Topic |
Publisher |
Subscriber |
Payload |
platform.oms.{id}.allocation.completed |
OMS |
BOR, Audit |
AllocationCompletedEvent |
platform.oms.{id}.allocation.confirmed |
Counterparty |
OMS |
ConfirmationReceivedEvent |
platform.oms.{id}.allocation.affirmed |
OMS |
Audit |
Affirmation |
Subscription pattern: platform.oms.*.allocation.completed
OMS -- Lot Selection
| Topic |
Publisher |
Subscriber |
Payload |
platform.oms.{id}.order.lot-selection-request |
OMS |
Tax Lot Selector |
LotSelectionRequest |
platform.oms.{id}.order.lot-selection-response |
Tax Lot Selector |
OMS |
LotSelectionResponse |
EMS -- Execution Management
| Topic |
Publisher |
Subscriber |
Payload |
platform.ems.{id}.order.child |
EMS |
CCM |
ChildOrderCreatedEvent |
platform.ems.{id}.fill.parent |
EMS |
BOR |
FillAggregatedEvent |
platform.ems.{id}.fill.recorded |
EMS |
Audit |
FillRecordedEvent |
platform.ems.{id}.fill.aggregated |
EMS |
Audit |
FillAggregatedEvent |
platform.ems.{id}.execution.submitted |
EMS |
Audit |
Execution |
platform.ems.{id}.execution.cancelled |
EMS |
Audit |
Execution |
platform.ems.{id}.strategy.selected |
EMS |
Audit |
Strategy |
platform.ems.{id}.tca.result |
TCA Plugin |
EMS, Reporting |
TCAResult |
platform.ems.{id}.rfq.requested |
EMS |
CCM |
RFQRequest |
platform.ems.{id}.rfq.quote.published |
CCM |
EMS |
RFQQuote |
platform.ems.{id}.rfq.quote.selected |
EMS |
CCM |
RFQQuote |
Subscription patterns:
- platform.ems.*.order.child
- platform.ems.*.fill.parent
- platform.ems.*.fill.*
CCM -- Connectivity
| Topic |
Publisher |
Subscriber |
Payload |
platform.ccm.{id}.fill.executed |
CCM |
EMS |
FillRecordedEvent |
platform.ccm.{id}.session.status |
CCM |
Monitoring |
SessionStatusEvent |
Subscription pattern: platform.ccm.*.fill.*
BOR -- Positions and Lots
| Topic |
Publisher |
Subscriber |
Payload |
platform.bor.{id}.position.snapshot |
BOR |
Valuation, Compliance |
PositionSnapshotEvent |
platform.bor.{id}.position.changed |
BOR |
Valuation, Recon |
PositionChangedEvent |
platform.bor.{id}.lot.closed |
BOR |
Valuation, Tax Lot |
LotClosed |
platform.bor.{id}.lot.method_configured |
BOR |
Audit |
Config |
Subscription patterns:
- platform.bor.*.position.changed
- platform.bor.*.position.snapshot
BOR -- Cash
| Topic |
Publisher |
Subscriber |
Payload |
platform.bor.{id}.cash.movement |
BOR |
Valuation, Fund Accounting |
CashMovementRecordedEvent |
platform.bor.{id}.cash.balance |
BOR |
Valuation |
CashBalanceChangedEvent |
BOR -- Valuation and NAV
| Topic |
Publisher |
Subscriber |
Payload |
platform.bor.{id}.nav.calculated |
Valuation Plugin |
Reporting, Fund Accounting |
NAVCalculatedEvent |
platform.bor.{id}.fee.accrued |
Valuation Plugin |
Fund Accounting |
FeeAccruedEvent |
platform.bor.{id}.mark.prices |
Valuation Plugin |
Reporting |
MarkPrices |
BOR -- Settlement
| Topic |
Publisher |
Subscriber |
Payload |
platform.bor.{id}.settlement.confirmed |
BOR |
Reporting |
SettlementConfirmedEvent |
platform.bor.{id}.settlement.failed |
BOR |
Ops |
SettlementFailedEvent |
platform.bor.{id}.settlement.instruction_sent |
BOR |
Custodian Plugin |
SettlementInstructionSentEvent |
BOR -- Reconciliation
| Topic |
Publisher |
Subscriber |
Payload |
platform.bor.{id}.recon.completed |
BOR / Recon Plugin |
Reporting |
ReconciliationCompletedEvent |
platform.bor.{id}.recon.break_detected |
BOR / Recon Plugin |
Ops |
ReconBreakDetectedEvent |
platform.bor.{id}.recon.break_resolved |
Ops |
Audit |
ReconBreakResolvedEvent |
platform.bor.{id}.recon.statement_ingested |
Recon Plugin |
BOR |
StatementIngestedEvent |
BOR -- Journal and Accounting
| Topic |
Publisher |
Subscriber |
Payload |
platform.bor.{id}.journal.posted |
BOR |
Fund Accounting, Reporting |
JournalEntryPostedEvent |
BOR -- Multi-Currency
| Topic |
Publisher |
Subscriber |
Payload |
platform.bor.{id}.fx.rates |
FX Plugin |
Valuation, BOR |
FXRates |
Order-Book Kernel -- Commands
Commands are sent via bus request/reply. The order-book kernel processes them synchronously and emits corresponding events.
| Topic |
Publisher |
Action |
platform.order-book.command.create-order |
OMS |
CreateOrder |
platform.order-book.command.update-order |
OMS |
UpdateOrder |
platform.order-book.command.cancel-order |
OMS |
CancelOrder |
platform.order-book.command.close-order |
EMS |
CloseOrder |
platform.order-book.command.create-remainder |
OMS |
CreateRemainderOrder |
platform.order-book.command.merge-orders |
OMS |
MergeOrders |
platform.order-book.command.split-order |
OMS |
SplitOrder |
platform.order-book.command.send-to-trader |
OMS |
SendToTrader |
platform.order-book.command.send-to-operations |
EMS |
SendToOperations |
platform.order-book.command.create-allocation |
OMS |
CreateAllocation |
platform.order-book.command.update-allocation |
OMS |
UpdateAllocation |
platform.order-book.command.create-placement |
EMS |
CreatePlacement |
platform.order-book.command.cancel-placement |
EMS |
CancelPlacement |
platform.order-book.command.create-response |
CCM |
CreateResponse |
platform.order-book.command.update-response-status |
CCM |
UpdateResponseStatus |
platform.order-book.command.amend-response |
Ops |
AmendResponse |
platform.order-book.command.cancel-response |
Ops |
CancelResponse |
platform.order-book.command.pass-pre-trade-compliance |
Compliance |
PassPreTradeCompliance |
platform.order-book.command.fail-pre-trade-compliance |
Compliance |
FailPreTradeCompliance |
platform.order-book.command.override-pre-trade-compliance |
Compliance Officer |
OverridePreTradeCompliance |
platform.order-book.command.pass-post-trade-compliance |
Compliance |
PassPostTradeCompliance |
platform.order-book.command.fail-post-trade-compliance |
Compliance |
FailPostTradeCompliance |
platform.order-book.command.override-post-trade-compliance |
Compliance Officer |
OverridePostTradeCompliance |
platform.order-book.command.confirm-order |
Middle Office |
ConfirmOrder |
platform.order-book.command.settle-order |
Settlement |
SettleOrder |
platform.order-book.command.reconcile-order |
Recon Plugin |
ReconcileOrder |
platform.order-book.command.create-position |
Corp Action Plugin |
CreatePosition |
Subscription pattern: platform.order-book.command.*
Order-Book Kernel -- Events
Events are published automatically when the kernel processes a command and state changes.
| Topic |
Trigger |
platform.order-book.event.order.state-changed |
Any order state transition |
platform.order-book.event.order.created |
CreateOrder |
platform.order-book.event.order.updated |
UpdateOrder |
platform.order-book.event.order.closed |
CloseOrder |
platform.order-book.event.order.canceled |
CancelOrder |
platform.order-book.event.order.sent-to-trader |
SendToTrader |
platform.order-book.event.order.sent-to-operations |
SendToOperations |
platform.order-book.event.allocation.created |
CreateAllocation |
platform.order-book.event.allocation.updated |
UpdateAllocation |
platform.order-book.event.placement.created |
CreatePlacement |
platform.order-book.event.placement.canceled |
CancelPlacement |
platform.order-book.event.response.status-changed |
UpdateResponseStatus |
platform.order-book.event.response.filled |
Response reaches FILLED |
platform.order-book.event.response.amended |
AmendResponse |
platform.order-book.event.response.cancelled |
CancelResponse |
platform.order-book.event.position.changed |
Any position modification |
platform.order-book.event.compliance.pre-trade.passed |
PassPreTradeCompliance |
platform.order-book.event.compliance.pre-trade.failed |
FailPreTradeCompliance |
platform.order-book.event.compliance.post-trade.passed |
PassPostTradeCompliance |
platform.order-book.event.compliance.post-trade.failed |
FailPostTradeCompliance |
platform.order-book.event.settlement.confirmed |
ConfirmOrder |
platform.order-book.event.settlement.settled |
SettleOrder |
platform.order-book.event.settlement.reconciled |
ReconcileOrder |
Subscription patterns:
- platform.order-book.event.** -- all kernel events
- platform.order-book.event.order.* -- all order events
- platform.order-book.event.response.* -- all response events
- platform.order-book.event.compliance.** -- all compliance events
Lifecycle
| Topic |
Publisher |
Subscriber |
Payload |
platform.lifecycle.{id}.ready |
Plugin |
Observer |
LifecycleEvent |
platform.lifecycle.{id}.heartbeat |
Plugin |
Observer |
LifecycleEvent |
platform.lifecycle.{id}.shutdown |
Plugin |
Observer |
LifecycleEvent |
platform.lifecycle.{id}.degraded |
Plugin |
Observer |
LifecycleEvent |
Subscription Wildcards
| Pattern |
Matches |
* |
Exactly one segment |
** |
One or more segments |
Examples:
| Pattern |
Matches |
Does Not Match |
platform.oms.*.order.cleared |
platform.oms.oms-01.order.cleared |
platform.oms.oms-01.order.created |
platform.data.eod.* |
platform.data.eod.AAPL |
platform.data.ohlcv.AAPL |
platform.order-book.event.** |
platform.order-book.event.order.created, platform.order-book.event.compliance.pre-trade.passed |
platform.order-book.command.create-order |
platform.bor.*.position.* |
platform.bor.bor-01.position.changed |
platform.bor.bor-01.cash.movement |
ACL Scoping
Plugins can only access topics their pool type authorizes. The sidecar enforces ACL rules before any message is published or delivered.
| Pool Type |
Publish |
Subscribe |
| DGM |
platform.data.*, platform.dgm.{self}.*, platform.data.feed.status |
platform.lifecycle.* |
| Signal |
platform.signal.{self}.* |
platform.data.*, platform.dgm.*.data.* |
| Portfolio |
platform.portfolio.{self}.* |
platform.signal.* |
| OMS |
platform.oms.{self}.*, platform.order-book.command.{order ops} |
platform.portfolio.*, platform.order-book.event.* |
| EMS |
platform.ems.{self}.*, platform.order-book.command.{placement ops} |
platform.oms.*.order.cleared, platform.order-book.event.*, platform.ccm.*.fill.* |
| CCM |
platform.ccm.{self}.*, platform.order-book.command.{response ops} |
platform.ems.*.order.child |
| BOR |
platform.bor.{self}.* |
platform.order-book.event.*, platform.ems.*.fill.parent |
{self} refers to the plugin's own instance ID. A plugin cannot publish to another plugin's namespace.
Backward compatibility: The existing platform.bor.* topics are retained as aliases. Plugins subscribing to platform.bor.{id}.position.changed continue to receive position change events. New plugins should prefer platform.order-book.event.* topics.