Skip to main content

Architecture (State 001 Baseline)

Baseline pre-containerized architecture with direct browser-to-service calls and Socket.IO trade/position subscriptions.

  • Generated from: system/architecture.model.json
  • Canonical flows: system/end-to-end-flows.md

Entry Points​

  • web-front-end-angular: http://localhost:18093
  • trade-feed: http://localhost:18086

Architecture Diagram​

Diagram source
flowchart LR
  trader["Trader Browser"]
  web["Web Front End Angular"]
  account["Account Service"]
  position["Position Service"]
  tradeService["Trade Service"]
  referenceData["Reference Data"]
  people["People Service"]
  tradeFeed["Trade Feed"]
  tradeProcessor["Trade Processor"]
  database["Database"]
  trader -->|"Uses UI"| web
  web -->|"REST /account + /accountuser"| account
  web -->|"REST /trades + /positions"| position
  web -->|"REST /trade"| tradeService
  web -->|"REST /stocks"| referenceData
  web -->|"REST /People"| people
  web -->|"Socket.IO subscribe"| tradeFeed
  tradeService -->|"Validate account"| account
  tradeService -->|"Validate ticker"| referenceData
  tradeService -->|"Publish trades/new"| tradeFeed
  tradeProcessor -->|"Consume and publish updates"| tradeFeed
  tradeProcessor -->|"Persist trade/position state"| database
  account -->|"Validate person for account-user mapping"| people
  account -->|"Account persistence"| database
  position -->|"Query trades/positions"| database

Node Catalog​

NodeKindLabelNotes
traderactorTrader BrowserHuman user interacting with Angular UI.
webfrontendWeb Front End AngularBrowser-hosted UI.
accountserviceAccount ServiceAccount and account-user CRUD.
positionservicePosition ServiceTrades and positions query endpoints.
tradeServiceserviceTrade ServiceTrade submission and validation.
referenceDataserviceReference DataTicker lookup/list.
peopleservicePeople ServiceDirectory lookup and validation.
tradeFeedmessagingTrade FeedSocket.IO publish/subscribe bus.
tradeProcessorserviceTrade ProcessorProcesses new trades and updates positions.
databasedatabaseDatabasePersistent account, trade, and position state.

State Notes​

  • This state is intentionally pre-ingress and cross-origin.
  • CORS behavior is part of baseline non-functional requirements.