Services and Dependencies¶
| Service | Responsibility | Owns |
|---|---|---|
| API Gateway | Public routing, request policy, response shaping | client rate counters |
| Identity Service | API keys, OAuth, sessions, permissions | principals, credentials |
| Catalog Service | Canonical game graph and metadata | games, people, categories |
| Pricing Service | Offer observations and current price projection | offers, price history |
| Deals Engine | Eligibility and ranking | deals, scores |
| Wishlist Service | User game collections and alerts | wishlists, alerts |
| Notification Service | Delivery orchestration | deliveries, preferences |
| Integration Service | Connector lifecycle and normalization | source mappings |
| Analytics Service | Aggregated trends and usage | rollups |
| Realtime Gateway | Connection state and fan-out | subscriptions |
| Export Service | Asynchronous snapshots | export jobs |
Services may read published projections from another domain but only the owning service writes its source of truth. Synchronous calls have a 750 ms default deadline. Cross-domain mutations are events, avoiding distributed transactions.
flowchart LR
Catalog -->|GameMerged| Pricing
Pricing -->|OfferChanged| Deals
Deals -->|DealPublished| Notification
Deals -->|DealPublished| Realtime
Wishlist -->|AlertMatched| Notification