Feature Pack 007: Pricing Awareness and Market Data Streaming
Status: Implemented
Track: functional
Previous state: 006-observability-lgtm-compose
Motivationβ
State 006 established observability on top of robust NATS messaging, but trade and position data are still quantity-only.
This pack adds execution pricing, position average cost basis, and streaming valuation/P&L so the trade workflow reflects realistic price-aware behavior.
Scope In This Stateβ
- Keep runtime model on Docker Compose + NGINX ingress from
006. - Add
price-publishercomponent:- emits
pricing.<TICKER>messages on NATS using randomized batch cadence (750-1500msdefault,25%symbols per cycle), - supports startup bootstrap from snapshot data or yfinance.
- emits
- Stamp trade execution price at submission (
trade-service) and persist it (trade-processor). - Aggregate position average cost basis in persistence model on every trade.
- Align supported symbol universe between
reference-dataandprice-publishervia shared runtime config. - Normalize legacy
FBsymbol toMETAin state007reference-data responses. - Expand default sample universe to include financial-services institutions used in demos:
MS,UBS,C,GS,DB,JPM,COF,DFS,FNMA,FIS,FNF. - Extend Angular blotters with:
- trade execution price and relative execution time,
- position open/market price/value/P&L with directional and semantic highlighting,
- total portfolio value and cost basis.
Artifactsβ
spec.mdrequirements/functional-delta.mdrequirements/nonfunctional-delta.mdcontracts/contract-delta.mdfidelity-profile.mdcomponents/nats-broker.mdcomponents/messaging-migration.mdconformance/nats-broker.mdsystem/architecture.model.jsonsystem/runtime-topology.mdsystem/migration-guidance.mdsystem/messaging-subject-map.mdsystem/docker-compose.nats.snippet.yamlsystem/ingress-nginx.nats-ws.snippet.confgeneration/generation-hook.mdtests/smoke/README.md