Skip to content

Operations Domain

Team: NovaTrek Operations Team
Services: 2
Domain color: #2563eb

Day-of-adventure workflows including guest check-in, schedule management, and real-time operational coordination. This domain orchestrates the core guest experience on the day of their adventure.


Topology

Operations Service Topology C4 Diagram

Services

Service Database Engine Schema Tables API Endpoints
svc-check-in PostgreSQL 15 checkin 3 5
svc-scheduling-orchestrator PostgreSQL 15 + Valkey 8 scheduling 4 5

Data Ownership

Every data entity has exactly one owning service. Other services access it read-only through APIs.

Data Entity Owning Service Read Access
Check-in records svc-check-in svc-analytics, svc-notifications
Daily schedules svc-scheduling-orchestrator svc-guide-management (read), svc-check-in (read)

Data Stores

svc-check-in

  • Engine: PostgreSQL 15
  • Schema: checkin
  • Tables: check_ins, gear_verifications, wristband_assignments
  • Features:
    • Indexes on reservation_id and check_in_date
    • TTL-based cleanup of stale check-ins (older than 24h)
    • Composite unique constraint on (reservation_id, participant_id)
  • Volume: ~5,000 check-ins/day peak season
  • Backup: Continuous WAL archiving, daily base backup, 7-day PITR

svc-scheduling-orchestrator

  • Engine: PostgreSQL 15 + Valkey 8
  • Schema: scheduling
  • Tables: schedule_requests, daily_schedules, schedule_conflicts, optimization_runs
  • Features:
    • Optimistic locking per ADR-011
    • Valkey for schedule lock cache and optimization queue
    • JSONB columns for constraint parameters
  • Volume: ~500 schedule requests/day
  • Backup: Continuous WAL archiving, daily base backup, 14-day PITR

Bounded Context Rules

These rules are non-negotiable for this domain.

  1. svc-check-in is the designated orchestrator for all day-of-adventure workflows (ADR-006)
  2. svc-scheduling-orchestrator owns the schedule lifecycle — other services MUST NOT mutate schedule data directly
  3. Schedule updates use PATCH semantics with optimistic locking to prevent data overwrites (ADR-010, ADR-011)

Cross-Domain Integration

Outbound (this domain calls)

Source Target Target Domain Action Async
svc-check-in svc-reservations Booking Verify reservation exists No
svc-check-in svc-guest-profiles Guest Identity Validate guest identity No
svc-check-in svc-trip-catalog Product Catalog Get adventure category No
svc-check-in svc-safety-compliance Safety Validate active waiver No
svc-check-in svc-notifications Support Send check-in confirmation Yes
svc-check-in svc-gear-inventory Logistics Verify gear assignment No
svc-check-in svc-safety-compliance Safety Log gear verification No
svc-scheduling-orchestrator svc-guide-management Guide Management Check guide availability No
svc-scheduling-orchestrator svc-trail-management Product Catalog Verify trail conditions No
svc-scheduling-orchestrator svc-weather Support Get forecast No
svc-scheduling-orchestrator svc-trip-catalog Product Catalog Get trip details No
svc-scheduling-orchestrator svc-notifications Support Notify assigned guides Yes
svc-scheduling-orchestrator svc-guide-management Guide Management Get all available guides No
svc-scheduling-orchestrator svc-location-services Support Check location capacity No
svc-scheduling-orchestrator svc-trip-catalog Product Catalog Get trip requirements No
svc-scheduling-orchestrator svc-analytics Support Log optimization metrics Yes
svc-scheduling-orchestrator svc-guide-management Guide Management Reassign guide No
svc-scheduling-orchestrator svc-notifications Support Notify affected parties Yes

Inbound

No inbound cross-domain calls.


Domain Events

Events Produced

Event Channel Producer Summary
checkin.completed novatrek.operations.checkin.completed svc-check-in Published when a guest completes the check-in process
schedule.published novatrek.operations.schedule.published svc-scheduling-orchestrator Published when a daily schedule is finalized

Consumers of these events:

Events Consumed

Event Channel Producer Producer Domain Consuming Service
reservation.created novatrek.booking.reservation.created svc-reservations Booking svc-scheduling-orchestrator
emergency.triggered novatrek.safety.emergency.triggered svc-emergency-response Safety svc-scheduling-orchestrator
wildlife_alert.issued novatrek.safety.wildlife-alert.issued svc-wildlife-tracking Safety svc-scheduling-orchestrator

Architecture Decisions

ADRs that directly constrain or shape this domain.

ADR Title
ADR-004 Configuration-Driven Classification
ADR-005 Pattern 3 Default Fallback
ADR-006 Orchestrator Pattern for Check-In
ADR-007 Four-Field Identity Verification
ADR-009 Session-Scoped Kiosk Access
ADR-010 PATCH Semantics for Schedule Updates
ADR-011 Optimistic Locking for Daily Schedule

Business Capabilities

Capabilities served by this domain's services.

ID Capability Status Description
CAP-2.1 Day-of-Adventure Check-In IMPLEMENTED Guest arrival processing, identity verification, wristband assignment, safety briefing
CAP-2.2 Schedule Planning and Optimization IMPLEMENTED Daily schedule creation, slot management, and capacity optimization


Generated from architecture/metadata/ YAML files by portal/scripts/generate-domain-pages.py.