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
| Version | Status | Key Features | 
|---|---|---|
| MVP.0 | Included | Hostaway one-way sync, channel targets, outbound audit | 
| MVP.1 | Planned | Two-way sync, inbound webhooks, booking awareness | 
| MVP.2 | Planned | Multi-channel distribution (Airbnb, VRBO) | 
| V1.0 | Future | Advanced distribution, white-label marketplace | 
Entity Version Mapping
MVP.0 Entities
| Entity | Table Name | Purpose | Status | 
|---|---|---|---|
| ChannelTarget | channel_targets | External channel connection configuration | ✅ Included | 
| ChannelListing | channel_listings | Unit-to-channel mapping and sync state | ✅ Included | 
| OutboundAudit | outbound_audit | Sync operation logs and metrics | ✅ Included | 
MVP.1 Entities
| Entity | Table Name | Purpose | Status | 
|---|---|---|---|
| InboundAudit | inbound_audit | Inbound webhook and booking import logs | 🔄 Deferred | 
Future Entities (V1.0+)
| Entity | Table Name | Purpose | Status | 
|---|---|---|---|
| ChannelFieldMapping | channel_field_mappings | Dynamic field transformation rules | 📋 Planned | 
| ChannelSyncJob | channel_sync_jobs | Job 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
| Workflow | MVP.0 | MVP.1 | MVP.2 | V1.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
- ✅ Org Isolation: All operations filtered by org_id and account_id
- ✅ One Listing Per Target: Unique constraint (unit_id, target_id)
- ✅ Idempotent Sync: DB constraint on (listing_id, idempotency_key)
- ✅ Rate Limit Compliance: ≤12 req / 10s for Hostaway
- ✅ Retry Logic: Max 5 attempts with full-jitter backoff
- ✅ Credentials Security: API tokens in Secrets Manager only
- ✅ Payload Hashing: Sync only on hash mismatch
- ✅ Audit Coverage: 100% of outbound syncs logged
- ✅ Soft Deletes: deleted_at for compliance
- ✅ Health Checks: Periodic connectivity validation
MVP.1 Rules
- 🔄 Webhook Deduplication: Unique (target_id, external_event_id)
- 🔄 Idempotent Processing: Safe to replay events
- 🔄 Booking Conflict Prevention: Check reservations before import
Performance Targets by Version
MVP.0 Targets
| Metric | Target | Measurement | 
|---|---|---|
| 95% syncs complete within 5 min | ✅ | p95 < 300s | 
| Sync failure rate < 1% per day | ✅ | failed/total < 0.01 | 
| 100% audit coverage | ✅ | outbound_audit.count == sync_jobs.count | 
| 429 ratio < 2% (10min window) | ✅ | rate_limited/total < 0.02 | 
| Snapshot replay < 10min | ✅ | Manual test < 600s | 
| Dashboard latency < 20s | ✅ | UI poll + query < 20s | 
MVP.1 Targets
| Metric | Target | Status | 
|---|---|---|
| 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:
- Deploy inbound_audit table schema
- Configure webhook endpoints with Hostaway
- Enable webhook signature validation
- Test booking import with staging data
- Enable production webhook delivery
Related Documents
- Channels & Distribution Specification - Complete domain spec
- Channel Field Mappings Guide - Field transformation reference
- MVP.0 PRD - MVP.0 scope and requirements
- MVP.1 PRD - Two-way sync requirements
- Roadmap - Future version planning
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