Skip to content

Product Catalog Domain

Team: Product Team
Services: 2
Domain color: #d97706

Adventure products, trip definitions, trail data, and the classification system that drives check-in UI patterns and safety workflows.


Topology

Product Catalog Service Topology C4 Diagram

Services

Service Database Engine Schema Tables API Endpoints
svc-trip-catalog PostgreSQL 15 catalog 6 11
svc-trail-management PostGIS (PostgreSQL 15) trails 4 9

Data Ownership

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

Data Entity Owning Service Read Access
Adventure catalog svc-trip-catalog svc-check-in, svc-reservations, svc-partner-integrations
Trail data svc-trail-management svc-trip-catalog, svc-safety-compliance, svc-scheduling-orchestrator

Data Stores

svc-trip-catalog

  • Engine: PostgreSQL 15
  • Schema: catalog
  • Tables: trips, trip_schedules, pricing_tiers, requirements, regions, activity_types
  • Features:
    • Full-text search index on trip name and description
    • Materialized view for availability calendar
    • JSONB columns for flexible requirement definitions
  • Volume: ~50 catalog updates/day, ~10K availability reads/day
  • Backup: Daily pg_dump, 14-day retention

svc-trail-management

  • Engine: PostGIS (PostgreSQL 15)
  • Schema: trails
  • Tables: trails, waypoints, closures, condition_reports
  • Features:
    • PostGIS geometry columns for trail routes and waypoints
    • Spatial indexes (GiST) for proximity queries
    • Time-series condition data with hypertable extension
  • Volume: ~200 condition updates/day, ~5K trail reads/day
  • Backup: Daily pg_dump with PostGIS extensions, 14-day retention

Bounded Context Rules

These rules are non-negotiable for this domain.

  1. Adventure classification is configuration-driven via YAML — no hardcoded constants (ADR-004)
  2. Trail elevation data may be null; all consumers must handle gracefully (ADR-003)
  3. Unknown adventure categories MUST default to Pattern 3 (Full Service) for safety (ADR-005)

Cross-Domain Integration

Outbound (this domain calls)

Source Target Target Domain Action Async
svc-trail-management svc-weather Support Correlate weather data No
svc-trail-management svc-location-services Support Get trail coordinates No
svc-trail-management svc-safety-compliance Safety Update trail safety assessment No
svc-trail-management svc-notifications Support Alert park rangers Yes
svc-trail-management svc-safety-compliance Safety Validate trail safety rating No

Inbound (called by other domains)

Source Source Domain Target Action Async
svc-check-in Operations svc-trip-catalog Get adventure category No
svc-reservations Booking svc-trip-catalog Check trip availability No
svc-reservations Booking svc-trip-catalog Verify availability No
svc-scheduling-orchestrator Operations svc-trail-management Verify trail conditions No
svc-scheduling-orchestrator Operations svc-trip-catalog Get trip details No
svc-scheduling-orchestrator Operations svc-trip-catalog Get trip requirements No
svc-partner-integrations External svc-trip-catalog Check trip availability No
svc-wildlife-tracking Safety svc-trail-management Identify nearest trails to sighting location No
svc-wildlife-tracking Safety svc-trail-management Recommend trail closure for affected corridors No

Domain Events

Events Consumed

Event Channel Producer Producer Domain Consuming Service
wildlife_alert.issued novatrek.safety.wildlife-alert.issued svc-wildlife-tracking Safety svc-trail-management

Architecture Decisions

ADRs that directly constrain or shape this domain.

ADR Title
ADR-003 Nullable Elevation Fields
ADR-004 Configuration-Driven Classification

Business Capabilities

Capabilities served by this domain's services.

ID Capability Status Description
CAP-1.2 Adventure Discovery and Browsing IMPLEMENTED Search, filter, and browse available adventures and trails
CAP-2.4 Trail Operations IMPLEMENTED Trail condition monitoring, elevation data, difficulty classification
CAP-3.4 Wildlife and Environmental Monitoring IMPLEMENTED Wildlife sighting reporting, trail closure triggers, environmental risk assessment
CAP-5.2 Trip Pricing and Yield Management PARTIAL Dynamic pricing, seasonal rates, and demand-based yield optimization


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