Data Model: Simple App - Base Uncontainerized App
Domain Entitiesβ
Accountβ
- Attributes:
id, displayName
- Notes: Core aggregate for blotter scope and trade ownership.
AccountUserβ
- Attributes:
accountId, username
- Notes: Many-to-many mapping for account entitlements seed behavior.
- Attributes:
logonId, fullName, email, employeeId, department, photoUrl
- Notes: Returned by people-service for validation and lookup.
SecurityReferenceβ
- Attributes:
ticker, companyName
- Notes: Reference-data ticker universe.
TradeOrderβ
- Attributes:
accountId, security, side, quantity
- Notes: Input command accepted by trade-service.
- Attributes:
id, accountId, security, side, quantity, state, timestamps
- Notes: Trade lifecycle record persisted by trade-processor.
Positionβ
- Attributes:
accountId, ticker, quantity
- Notes: Aggregated position updated from processed trades.
Relationshipsβ
- Account 1..* Trade
- Account 1..* Position
- Account .. Person (via AccountUser)
- TradeOrder -> Trade (processing projection)
- Trade events -> Position updates (via trade-processor pipeline)
Contract Surfacesβ
- REST APIs: account-service, position-service, trade-service, people-service, reference-data
- Event APIs: trade-feed topics for new trades and account-scoped updates