Support Domain¶
Team: Various (cross-cutting platform services)
Services: 9
Domain color: #64748b
Cross-cutting platform services including notifications, payments, loyalty rewards, analytics, weather, location services, media gallery, procurement, and reviews.
Topology¶
Services¶
| Service | Database Engine | Schema | Tables | API Endpoints |
|---|---|---|---|---|
| svc-notifications | PostgreSQL 15 + Valkey 8 | notifications | 4 | 6 |
| svc-payments | PostgreSQL 15 | payments | 6 | 12 |
| svc-loyalty-rewards | Couchbase 7 | loyalty | 4 | 5 |
| svc-media-gallery | PostgreSQL 15 + S3-Compatible Object Store | media | 3 | 5 |
| svc-analytics | Oracle Database 19c | ANALYTICS | 6 | 6 |
| svc-weather | Valkey 8 + PostgreSQL 15 | weather | 3 | 5 |
| svc-location-services | PostGIS (PostgreSQL 15) | locations | 3 | 6 |
| svc-inventory-procurement | PostgreSQL 15 | procurement | 6 | 8 |
| svc-reviews | PostgreSQL 15 | reviews | 3 | 10 |
Data Ownership¶
Every data entity has exactly one owning service. Other services access it read-only through APIs.
| Data Entity | Owning Service | Read Access |
|---|---|---|
| Notification log | svc-notifications | svc-analytics |
| Payment records | svc-payments | svc-reservations, svc-analytics |
| Loyalty points | svc-loyalty-rewards | svc-guest-profiles (read) |
| Media assets | svc-media-gallery | svc-analytics |
| Analytics events | svc-analytics | Internal (no external readers) |
| Weather cache | svc-weather | svc-scheduling-orchestrator, svc-trail-management |
| Location data | svc-location-services | svc-transport-logistics, svc-emergency-response, svc-trail-management |
| Procurement orders | svc-inventory-procurement | svc-gear-inventory |
| Guest reviews | svc-reviews | svc-trip-catalog, svc-analytics |
Data Stores¶
svc-notifications¶
- Engine: PostgreSQL 15 + Valkey 8
- Schema:
notifications - Tables:
notifications,templates,delivery_log,channel_preferences - Features:
- Valkey queue for async delivery processing
- Template versioning with rollback support
- Multi-channel delivery: email, SMS, push, in-app
- Volume: ~15,000 notifications/day
- Backup: Daily pg_dump, 30-day retention
svc-payments¶
- Engine: PostgreSQL 15
- Schema:
payments - Tables:
payments,refunds,payment_methods,daily_summaries,disputes,refund_policy_evaluations - Features:
- PCI-DSS compliant token storage (no raw card data)
- Idempotent payment processing via request keys
- Double-entry ledger for financial reconciliation
- Volume: ~2,500 transactions/day
- Backup: Continuous WAL archiving, daily base backup, 7-year retention (financial)
svc-loyalty-rewards¶
- Engine: Couchbase 7
- Schema:
loyalty - Tables:
members,point_transactions,tiers,redemptions - Features:
- Document-oriented member profiles with flexible reward schemas
- N1QL queries for tier recalculation and point aggregation
- Sub-document operations for atomic point balance updates
- Volume: ~1,000 transactions/day
- Backup: XDCR to standby cluster, daily cbbackupmgr
svc-media-gallery¶
- Engine: PostgreSQL 15 + S3-Compatible Object Store
- Schema:
media - Tables:
media_items,share_links,albums - Features:
- S3-compatible storage for photos and videos
- Presigned URLs for secure direct upload and download
- Automatic thumbnail generation on upload
- Volume: ~500 uploads/day peak season
- Backup: Daily pg_dump, S3 cross-region replication
svc-analytics¶
- Engine: Oracle Database 19c
- Schema:
ANALYTICS - Tables:
BOOKING_METRICS,REVENUE_METRICS,UTILIZATION_METRICS,SATISFACTION_SCORES,SAFETY_METRICS,GUIDE_PERFORMANCE - Features:
- Oracle Partitioning for time-series data (range partitioning by month)
- Materialized views with fast refresh for real-time dashboards
- Oracle Advanced Analytics (DBMS_PREDICTIVE_ANALYTICS) for trend forecasting
- Volume: ~50K metric inserts/day (event-driven)
- Backup: Oracle RMAN incremental backup, 90-day retention
svc-weather¶
- Engine: Valkey 8 + PostgreSQL 15
- Schema:
weather - Tables:
weather_stations,forecast_cache,alert_history - Features:
- Valkey TTL cache for current conditions (5-min TTL)
- External weather API response caching and aggregation
- Severe weather alert deduplication
- Volume: ~10K weather reads/day, ~100 external API fetches/day
- Backup: Daily pg_dump, 7-day retention (cache data is ephemeral)
svc-location-services¶
- Engine: PostGIS (PostgreSQL 15)
- Schema:
locations - Tables:
locations,capacity_records,operating_hours - Features:
- PostGIS geometry for geofencing and proximity queries
- Real-time capacity tracking with threshold alerts
- Timezone-aware operating hours management
- Volume: ~100 updates/day, ~2K reads/day
- Backup: Daily pg_dump, 14-day retention
svc-inventory-procurement¶
- Engine: PostgreSQL 15
- Schema:
procurement - Tables:
purchase_orders,po_line_items,suppliers,stock_levels,stock_adjustments,reorder_alerts - Features:
- Purchase order approval workflow with state machine
- Automatic reorder point calculation based on consumption
- Supplier lead time tracking for delivery estimates
- Volume: ~50 POs/day, ~200 stock adjustments/day
- Backup: Daily pg_dump, 30-day retention
svc-reviews¶
- Engine: PostgreSQL 15
- Schema:
reviews - Tables:
reviews,review_helpful_votes,rating_aggregates - Features:
- Reservation-gated review submission (cross-ref svc-reservations)
- Optimistic locking on review records (_rev field)
- Pre-computed rating aggregates per trip and per guide
- Full-text search on review body via tsvector index
- Volume: ~500 reviews/day, ~50,000 reads/day
- Backup: Daily pg_dump, 30-day retention
Bounded Context Rules¶
These rules are non-negotiable for this domain.
- Notification delivery is multi-channel (email via SendGrid, SMS via Twilio, push via Firebase)
- Payment processing integrates with external fraud detection before authorization
- Analytics events flow via Kafka consumers — svc-analytics subscribes to all domain events
- All support services are consumed by other domains but do not own core business data
Cross-Domain Integration¶
Outbound (this domain calls)¶
| Source | Target | Target Domain | Action | Async |
|---|---|---|---|---|
| svc-loyalty-rewards | svc-reservations | Booking | Verify completed booking | No |
| svc-loyalty-rewards | svc-guest-profiles | Guest Identity | Get member profile | No |
| svc-inventory-procurement | svc-gear-inventory | Logistics | Verify item catalog | No |
| svc-reviews | svc-reservations | Booking | Validate reservation exists and is COMPLETED | No |
| svc-reviews | svc-guest-profiles | Guest Identity | Validate guest identity | No |
Inbound (called by other domains)¶
| Source | Source Domain | Target | Action | Async |
|---|---|---|---|---|
| svc-check-in | Operations | svc-notifications | Send check-in confirmation | Yes |
| svc-reservations | Booking | svc-payments | Process deposit payment | No |
| svc-reservations | Booking | svc-notifications | Send booking confirmation | Yes |
| svc-reservations | Booking | svc-notifications | Send status update | Yes |
| svc-reservations | Booking | svc-notifications | Send insurance confirmation | Yes |
| svc-scheduling-orchestrator | Operations | svc-weather | Get forecast | No |
| svc-scheduling-orchestrator | Operations | svc-notifications | Notify assigned guides | Yes |
| svc-scheduling-orchestrator | Operations | svc-location-services | Check location capacity | No |
| svc-scheduling-orchestrator | Operations | svc-analytics | Log optimization metrics | Yes |
| svc-scheduling-orchestrator | Operations | svc-notifications | Notify affected parties | Yes |
| svc-partner-integrations | External | svc-payments | Process commission | No |
| svc-partner-integrations | External | svc-notifications | Send partner confirmation | Yes |
| svc-guest-profiles | Guest Identity | svc-analytics | Get satisfaction scores | No |
| svc-safety-compliance | Safety | svc-notifications | Send waiver copy | Yes |
| svc-safety-compliance | Safety | svc-notifications | Send safety alert | Yes |
| svc-transport-logistics | Logistics | svc-location-services | Validate pickup location | No |
| svc-transport-logistics | Logistics | svc-notifications | Send transport details | Yes |
| svc-trail-management | Product Catalog | svc-weather | Correlate weather data | No |
| svc-trail-management | Product Catalog | svc-location-services | Get trail coordinates | No |
| svc-trail-management | Product Catalog | svc-notifications | Alert park rangers | Yes |
| svc-emergency-response | Safety | svc-location-services | Get last known guest GPS position | No |
| svc-emergency-response | Safety | svc-notifications | Send emergency alerts to staff and guests | Yes |
| svc-emergency-response | Safety | svc-notifications | Notify dispatched rescue team | Yes |
| svc-wildlife-tracking | Safety | svc-weather | Get current conditions at sighting location | No |
| svc-wildlife-tracking | Safety | svc-notifications | Alert operations staff and active guides | Yes |
Domain Events¶
Events Produced¶
| Event | Channel | Producer | Summary |
|---|---|---|---|
payment.processed | novatrek.support.payment.processed | svc-payments | Published when a payment is successfully processed |
Consumers of these events:
payment.processed→ svc-reservations, svc-notifications
Events Consumed¶
| Event | Channel | Producer | Producer Domain | Consuming Service |
|---|---|---|---|---|
reservation.created | novatrek.booking.reservation.created | svc-reservations | Booking | svc-analytics |
reservation.status_changed | novatrek.booking.reservation.status-changed | svc-reservations | Booking | svc-notifications |
reservation.status_changed | novatrek.booking.reservation.status-changed | svc-reservations | Booking | svc-analytics |
guest.registered | novatrek.guest-identity.guest.registered | svc-guest-profiles | Guest Identity | svc-loyalty-rewards |
guest.registered | novatrek.guest-identity.guest.registered | svc-guest-profiles | Guest Identity | svc-analytics |
checkin.completed | novatrek.operations.checkin.completed | svc-check-in | Operations | svc-notifications |
checkin.completed | novatrek.operations.checkin.completed | svc-check-in | Operations | svc-analytics |
schedule.published | novatrek.operations.schedule.published | svc-scheduling-orchestrator | Operations | svc-notifications |
payment.processed | novatrek.support.payment.processed | svc-payments | Support | svc-notifications |
incident.reported | novatrek.safety.incident.reported | svc-safety-compliance | Safety | svc-notifications |
incident.reported | novatrek.safety.incident.reported | svc-safety-compliance | Safety | svc-analytics |
emergency.triggered | novatrek.safety.emergency.triggered | svc-emergency-response | Safety | svc-notifications |
emergency.triggered | novatrek.safety.emergency.triggered | svc-emergency-response | Safety | svc-analytics |
wildlife_alert.issued | novatrek.safety.wildlife-alert.issued | svc-wildlife-tracking | Safety | svc-notifications |
wildlife_alert.issued | novatrek.safety.wildlife-alert.issued | svc-wildlife-tracking | Safety | svc-analytics |
Business Capabilities¶
Capabilities served by this domain's services.
| ID | Capability | Status | Description |
|---|---|---|---|
| CAP-1.4 | Loyalty and Rewards | IMPLEMENTED | Points earning, tier progression, and reward redemption |
| CAP-1.5 | Guest Communications | IMPLEMENTED | Multi-channel notifications (email, SMS, push) for guest interactions |
| CAP-1.6 | Trip Media and Memories | IMPLEMENTED | Photo and video capture, storage, and sharing for completed adventures |
| CAP-1.7 | Reviews and Feedback | IMPLEMENTED | Guest trip reviews, ratings, and social proof for adventure selection |
| CAP-3.5 | Weather Monitoring and Alerting | IMPLEMENTED | Weather condition tracking, severe weather alerts, and adventure cancellation triggers |
| CAP-4.2 | Procurement and Vendor Management | IMPLEMENTED | Purchase orders, vendor relationships, and supply chain management |
| CAP-4.3 | Location and Capacity Management | IMPLEMENTED | Venue capacity tracking, geospatial boundaries, location metadata |
| CAP-5.1 | Payment Processing | IMPLEMENTED | Payment authorization, capture, and settlement across payment methods |
| CAP-5.3 | Analytics and Business Intelligence | IMPLEMENTED | Operational dashboards, booking trends, revenue analytics |
| CAP-5.4 | Financial Reporting and Reconciliation | PARTIAL | Revenue reporting, payment reconciliation, tax calculation |
| CAP-5.5 | Refund and Dispute Management | IMPLEMENTED | Refund processing, chargeback management, dispute resolution workflows |
| CAP-7.1 | Notification Delivery (Multi-Channel) | IMPLEMENTED | Email, SMS, push notification delivery with template management |
| CAP-7.2 | Geospatial and Location Services | IMPLEMENTED | Geocoding, geofencing, distance calculation, and map tile serving |
Quick Links¶
- Domain Topology View
- svc-notifications Microservice Page
- svc-payments Microservice Page
- svc-loyalty-rewards Microservice Page
- svc-media-gallery Microservice Page
- svc-analytics Microservice Page
- svc-weather Microservice Page
- svc-location-services Microservice Page
- svc-inventory-procurement Microservice Page
- svc-reviews Microservice Page
- Event Catalog
- Business Capabilities
Generated from architecture/metadata/ YAML files by portal/scripts/generate-domain-pages.py.