Skip to main content

Architecture (State 004 Containerized Compose Runtime)

State 004 preserves state 002 routing semantics while moving runtime to Docker Compose and NGINX ingress.

  • Inherits architectural baseline from: 002-edge-proxy-uncontainerized
  • Generated from: system/architecture.model.json
  • Canonical flows: ../001-baseline-uncontainerized-parity/system/end-to-end-flows.md

Entry Points​

  • ingress: http://localhost:8080
  • angular-debug: http://localhost:18093

Architecture Diagram​

Diagram source
flowchart LR
  trader["Trader Browser"]
  ingress["NGINX Ingress"]
  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 -->|"Single browser entrypoint"| ingress
  ingress -->|"/"| web
  ingress -->|"/account-service"| account
  ingress -->|"/position-service"| position
  ingress -->|"/trade-service"| tradeService
  ingress -->|"/reference-data"| referenceData
  ingress -->|"/people-service"| people
  ingress -->|"/trade-feed and /socket.io"| 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 -->|"Account persistence"| database
  position -->|"Query trades/positions"| database
  account -->|"Validate person for account-user mapping"| people

Node Catalog​

NodeKindLabelNotes
traderactorTrader BrowserUser traffic enters through ingress.
ingressgatewayNGINX IngressCompose ingress for UI/API/WebSocket routes.
webfrontendWeb Front End AngularContainerized Angular service.
accountserviceAccount ServiceContainerized Spring service.
positionservicePosition ServiceContainerized Spring service.
tradeServiceserviceTrade ServiceContainerized Spring service.
referenceDataserviceReference DataContainerized Node service.
peopleservicePeople ServiceContainerized .NET service.
tradeFeedmessagingTrade FeedContainerized Socket.IO bus.
tradeProcessorserviceTrade ProcessorContainerized Spring service.
databasedatabaseDatabaseContainerized H2 persistence service.

State Notes​

  • State 004 preserves approved baseline functional behavior while changing runtime/ops model.
  • Inter-service network resolution uses Docker Compose service DNS names.