Skip to main content

Channels & Distribution - Version Mapping

Domain: Channels & Distribution Domain Number: 09 First Introduced: MVP.0 Last Updated: 2025-10-25


Overview

This document maps Channels & Distribution domain features and entities to specific MVP and version releases. It provides a quick reference for understanding when capabilities were introduced and when dependencies become available.


Version Timeline

VersionStatusKey Features
MVP.0IncludedHostaway one-way sync, channel targets, outbound audit
MVP.1PlannedTwo-way sync, inbound webhooks, booking awareness
MVP.2PlannedMulti-channel distribution (Airbnb, VRBO)
V1.0FutureAdvanced distribution, white-label marketplace

Entity Version Mapping

MVP.0 Entities

EntityTable NamePurposeStatus
ChannelTargetchannel_targetsExternal channel connection configuration✅ Included
ChannelListingchannel_listingsUnit-to-channel mapping and sync state✅ Included
OutboundAuditoutbound_auditSync operation logs and metrics✅ Included

MVP.1 Entities

EntityTable NamePurposeStatus
InboundAuditinbound_auditInbound webhook and booking import logs🔄 Deferred

Future Entities (V1.0+)

EntityTable NamePurposeStatus
ChannelFieldMappingchannel_field_mappingsDynamic field transformation rules📋 Planned
ChannelSyncJobchannel_sync_jobsJob queue and scheduling📋 Planned

Feature Version Mapping

MVP.0 Features (Included)

Channel Management:

  • ✅ Create and configure Hostaway channel targets
  • ✅ Credential storage in Secrets Manager
  • ✅ Health check validation
  • ✅ Rate limit configuration per target

Outbound Sync:

  • ✅ Unit-level distribution to Hostaway
  • ✅ Field mapping (TVL → Hostaway schema)
  • ✅ Idempotent sync with payload hashing
  • ✅ Per-target rate limiting (12 req/10s)
  • ✅ Full-jitter exponential backoff on errors
  • ✅ Manual retry from Unit snapshot
  • ✅ Change detection via payload hash comparison

Observability:

  • ✅ OutboundAudit logging for all sync operations
  • ✅ Health dashboard (queue depth, 429 count, error rate)
  • ✅ OpenTelemetry metrics and traces
  • ✅ Structured logs with trace_id correlation

Security:

  • ✅ RBAC enforcement (Owner, ChannelPublisher roles)
  • ✅ ABAC filtering by org_id
  • ✅ Session security (Secure, HttpOnly, SameSite cookies)
  • ✅ Audit trail with created_by tracking

MVP.1 Features (Deferred)

Two-Way Sync:

  • 🔄 Inbound webhook processing (Hostaway → TVL)
  • 🔄 Booking import and mapping
  • 🔄 Availability synchronization
  • 🔄 Cancellation handling
  • 🔄 InboundAudit entity and deduplication
  • 🔄 Booking awareness (prevent double-bookings)
  • 🔄 PATCH operations (delta updates)

MVP.2 Features (Deferred)

Multi-Channel Support:

  • 🔄 Airbnb API integration
  • 🔄 VRBO API integration
  • 🔄 Channel-specific field mappings
  • 🔄 Per-channel pricing/availability rules
  • 🔄 Unified multi-channel health dashboard

V1.0 Features (Future)

Advanced Distribution:

  • 📋 White-label marketplace support
  • 📋 Internal brand site distribution
  • 📋 Delta-based exports (change detection)
  • 📋 Dynamic pricing feed integration
  • 📋 Multi-currency support per channel
  • 📋 ML-based retry strategies

Workflow Version Mapping

WorkflowMVP.0MVP.1MVP.2V1.0
Channel Setup✅ Hostaway✅ Airbnb, VRBO✅ White-label
Link Unit to Channel
Outbound Sync Execution✅ PATCH support✅ Delta sync
Manual Retry from Snapshot
Health Dashboard Monitoring✅ Multi-channel
Inbound Webhook Processing

Dependency Version Mapping

MVP.0 Dependencies

Required Domains:

  • ✅ Identity & Tenancy (MVP.0) - Org/Account scoping
  • ✅ Authorization & Access (MVP.0) - Role-based permissions
  • ✅ Supply (MVP.0) - Units/Spaces to distribute
  • ✅ Content & Metadata (MVP.0) - Descriptions, media
  • ✅ Availability (MVP.0) - Calendar data for sync

Depended On By:

  • ✅ Analytics & Audit (MVP.0) - Sync metrics
  • 🔄 Search & Indexing (V1.2) - Published listing status

Related:

  • 🔄 Delegation & Collaboration (V1.1) - Cross-org channel sharing

MVP.1 Dependencies

New Dependencies:

  • ✅ Bookings (MVP.0) - Inbound booking import

Technical Implementation Timeline

MVP.0 Implementation

Database:

  • ✅ 3 tables: channel_targets, channel_listings, outbound_audit
  • ✅ 15+ indexes for performance
  • ✅ 10+ constraints for data integrity
  • ✅ JSONB fields for flexible configuration

API Endpoints:

  • ✅ POST /api/channels/targets - Create channel target
  • ✅ GET /api/channels/targets - List targets
  • ✅ POST /api/channels/listings - Link Unit to channel
  • ✅ GET /api/channels/listings/:id/history - View sync audit
  • ✅ POST /api/channels/listings/:id/retry - Manual retry

Background Jobs:

  • ✅ Sync job queue with BullMQ
  • ✅ Per-target rate limiters
  • ✅ Retry with exponential backoff
  • ✅ Health check scheduler

External Integrations:

  • ✅ Hostaway API client
  • ✅ Secrets Manager integration
  • ✅ OpenTelemetry instrumentation

MVP.1 Implementation

Database:

  • 🔄 1 new table: inbound_audit
  • 🔄 Webhook signature validation tables

API Endpoints:

  • 🔄 POST /api/webhooks/hostaway - Webhook receiver
  • 🔄 GET /api/channels/inbound-audit - Inbound event logs

Background Jobs:

  • 🔄 Webhook event processor
  • 🔄 Booking import worker
  • 🔄 Deduplication logic

Business Rules by Version

MVP.0 Rules

  1. ✅ Org Isolation: All operations filtered by org_id and account_id
  2. ✅ One Listing Per Target: Unique constraint (unit_id, target_id)
  3. ✅ Idempotent Sync: DB constraint on (listing_id, idempotency_key)
  4. ✅ Rate Limit Compliance: ≤12 req / 10s for Hostaway
  5. ✅ Retry Logic: Max 5 attempts with full-jitter backoff
  6. ✅ Credentials Security: API tokens in Secrets Manager only
  7. ✅ Payload Hashing: Sync only on hash mismatch
  8. ✅ Audit Coverage: 100% of outbound syncs logged
  9. ✅ Soft Deletes: deleted_at for compliance
  10. ✅ Health Checks: Periodic connectivity validation

MVP.1 Rules

  1. 🔄 Webhook Deduplication: Unique (target_id, external_event_id)
  2. 🔄 Idempotent Processing: Safe to replay events
  3. 🔄 Booking Conflict Prevention: Check reservations before import

Performance Targets by Version

MVP.0 Targets

MetricTargetMeasurement
95% syncs complete within 5 minp95 < 300s
Sync failure rate < 1% per dayfailed/total < 0.01
100% audit coverageoutbound_audit.count == sync_jobs.count
429 ratio < 2% (10min window)rate_limited/total < 0.02
Snapshot replay < 10minManual test < 600s
Dashboard latency < 20sUI poll + query < 20s

MVP.1 Targets

MetricTargetStatus
Webhook processing < 5s🔄p95 latency
Inbound deduplication 100%🔄No duplicate bookings
Booking import success > 99.9%🔄3-nines reliability

Migration Notes

From Pre-MVP to MVP.0

New Capabilities:

  • Channel distribution infrastructure
  • Hostaway integration
  • Sync observability

Breaking Changes:

  • None (greenfield feature)

From MVP.0 to MVP.1

New Capabilities:

  • Two-way sync
  • Inbound booking import
  • Webhook infrastructure

Breaking Changes:

  • None (additive only)

Migration Steps:

  1. Deploy inbound_audit table schema
  2. Configure webhook endpoints with Hostaway
  3. Enable webhook signature validation
  4. Test booking import with staging data
  5. Enable production webhook delivery


Glossary

  • Channel Target: External distribution platform (Hostaway, Airbnb, VRBO)
  • Channel Listing: Mapping of internal Unit to external listing
  • Outbound Sync: TVL → Channel data export
  • Inbound Sync: Channel → TVL data import (bookings, availability)
  • Idempotency Key: Hash ensuring duplicate prevention
  • Payload Hash: SHA-256 of sync data for change detection
  • Rate Limiting: Throttling per channel API limits
  • Retry-After: HTTP 429 header specifying backoff duration