Busflow Docs

Internal documentation portal

Skip to content

Feature Subsets: Modular Go-To-Market Packaging ​

Status: ACTIVE // DRAFT

Busflow's Modular Monolith architecture β€” with strictly segregated Bounded Contexts (Backoffice, Commerce, Operations, Communications) communicating via domain events β€” natively supports developing and offering independent feature subsets. This document maps each commercial product subset to its authoritative domain documentation, enabling "wedge" sales to Legacy Operators without requiring a full-platform migration on day one.

IMPORTANT

This document is a routing table, not a specification. Each feature links to its authoritative source. Do not duplicate domain definitions here β€” update the source docs and keep this index in sync.


Subset Overview ​

#SubsetPrimary ContextWedge TargetHorizon
1E-Commerce & Revenue EngineCommercePatchwork Operators lacking online sales[v0.1]–[v0.2]
2Digital Fulfillment & Premium Passenger ExperienceCommerce + CommunicationsOperators sending PDF tickets via email[v0.1]–[v0.2]
3Driver-First Execution HubOperationsOperators with clipboard-based fleet execution[v0.2]–[future]
4Crisis Management & Automated CommunicationsCommunicationsOperators drowning in WhatsApp/email chaos[v0.2]–[future]
5AI-Powered BackofficeBackofficeOperators drowning in manual data entry[v0.2]–[future]
6Kalkulations- & Finance EngineBackoffice + CommerceOperators lacking margin visibility and tax automation[v0.2]–[future]

Inter-Context Dependencies ​

Each subset maps to one primary Bounded Context but may consume events or read models from others. The table below tracks these cross-context requirements so engineering and sales teams understand what ships independently and what requires co-deployment.

SubsetRequired ContextsKey Domain Events ConsumedNotes
1. E-Commerce EngineCommerce, Backoffice (upstream)TripPublished, PriceMatrixPublishedBackoffice owns product data; Commerce owns checkout. The engine requires published tours to sell.
2. Digital FulfillmentCommerce, CommunicationsBookingConfirmed, ServiceLegDelayedWallet pass generation is Commerce; dynamic delay updates route through Communications.
3. Driver HubOperations, Backoffice (upstream)TripAssigned, CrewScheduleUpdatedReceives dispatch assignments from Backoffice. Emits ExpenseSubmitted, OnboardSaleRecorded back to Commerce.
4. Crisis CommunicationsCommunications, Operations (upstream)IncidentCreated, ServiceLegDelayedOperations produces the incidents; Communications delivers the broadcasts.
5. AI BackofficeBackofficeβ€” (self-contained)Emits TripPublished downstream but does not consume cross-context events.
6. Kalkulations-EngineBackoffice, Commerce (downstream)BookingConfirmed, ExpenseSubmitted, OnboardSaleRecordedBackoffice owns cost planning (CostingSheet) and price generation (PriceMatrix). Commerce owns post-departure actuals (FinancialLedger).

See event-catalog.md for the full event registry and domain-driven-design.md Β§8 for the context map.


1. E-Commerce & Revenue Engine ​

For operators whose legacy software lacks modern online sales capabilities β€” a "Shopify for Bus Tours" that instantly boosts conversion rates.

Primary Context: Commerce Β· Wedge Target: Patchwork Operators Β· Horizon: [v0.1]–[v0.2]

FeatureHorizonAuthoritative Source
High-Conversion Booking Widget β€” Fast, SEO-optimized, embeddable checkout with frictionless guest checkout.[v0.1]PRODUCT_project-scope.md Β§V0.1 Β· differentiators.md Β§1
Interactive Seat Selection β€” Visual seat maps where seats are database-locked for the duration of the checkout session.[future]domain-model.md β†’ SeatReservation Β· ADR-013
Modern Payment Stack β€” Localized gateways via Mollie handling Apple Pay, Google Pay, Klarna (BNPL), and SEPA, alongside automated deposit and final balance logic.[v0.1]PRODUCT_mollie-integration.md Β· domain-model.md β†’ Payment
B2B Agency Portal β€” A white-label API portal allowing partner travel agencies to book directly on commission.[v0.2]domain-model.md β†’ Reseller Β· user-journeys.md β†’ Journey 4

NOTE

Open item: SB-3 tracks the agency commission ↔ margin interplay β€” this needs an ADR when channel pricing (Pricing Hierarchy Level 2/3) begins.


2. Digital Fulfillment & Premium Passenger Experience ​

Elevates the customer journey to airline standards and drastically reduces inbound support calls.

Primary Context: Commerce + Communications Β· Wedge Target: Operators sending PDF tickets Β· Horizon: [v0.1]–[v0.2]

FeatureHorizonAuthoritative Source
Passwordless Passenger Portal β€” A "Magic Link" hub where passengers retrieve PDFs, manage bookings, and make self-service balance payments.[v0.2]STRATEGY_platform-vision.md Β§H1 Β· user-journeys.md β†’ Journey 3
Dynamic Digital Ticketing β€” Automated Apple and Google Wallet passes that update dynamically on delays.[v0.1]domain-model.md β†’ Ticket Β· user-journeys.md β†’ Journey 2
Live ETA Tracking β€” A secure "Where is my Bus?" web link providing passengers with live maps and exact arrival times.[v0.2]domain-model.md β†’ TelemetryPoint, RouteWaypoint Β· event-contracts-operations.md Β§Consumer ETA Tracking

NOTE

Live ETA Tracking depends on the TelemetryPoint high-frequency GPS ingestion pipeline. See domain-driven-design.md Β§5 for the fast-ingest architecture.


3. Driver-First Execution Hub ​

Even if a legacy system handles bookings, this mobile-first ecosystem modernizes fleet execution, eliminates clipboards, and attracts digitally native drivers.

Primary Context: Operations Β· Wedge Target: Operators with clipboard-based execution Β· Horizon: [v0.2]–[future]

FeatureHorizonAuthoritative Source
Offline-First Driver PWA β€” A mobile app functioning fully offline, featuring QR-code boarding and digital passenger manifests.[v0.2]domain-model.md β†’ BoardingEvent Β· domain-model.md Β§Offline Sync Β· offline-sync-protocol.md
Onboard POS (Bordverkauf) β€” A tap-to-add interface for selling snacks or upsells mid-trip, utilizing digital payment links or cash.[v0.2]domain-model.md β†’ OnboardSale Β· user-journeys.md β†’ Journey 3
AI Receipt Capture β€” Native camera OCR that extracts fuel and toll receipt data, instantly pushing it back to accounting.[v0.2]domain-model.md β†’ ExpenseReceipt Β· event-catalog.md β†’ ExpenseSubmitted

NOTE

The V0.1 scope (PRODUCT_project-scope.md) defers the full PWA Driver App to V0.2+, recommending "simple mobile web for now if needed." The features above represent the target-state architecture; initial delivery will likely start with a simplified mobile web interface.


4. Crisis Management & Automated Communications ​

An intelligent communication wrapper that solves the WhatsApp and email chaos plaguing dispatchers during day-of-departure crises.

Primary Context: Communications Β· Wedge Target: Dispatchers managing crises via personal WhatsApp Β· Horizon: [v0.2]–[future]

FeatureHorizonAuthoritative Source
Omnichannel Inbox β€” Consolidates WhatsApp, Email, and SMS into a single dispatcher UI, utilizing AI to draft contextual responses.[v0.2]domain-model.md Β§Communications Β· communications.md
1-Tap Incident Reporting β€” Drivers drop a GPS pin to report traffic or breakdowns, triggering a high-priority alert to the back office.[v0.2]domain-model.md β†’ Incident Β· event-catalog.md β†’ IncidentCreated
Proactive Crisis Broadcasts β€” Incident reports trigger AI-drafted WhatsApp broadcasts to waiting downstream passengers.[v0.2]–[future]event-catalog.md β†’ IncidentCreated Β· user-journeys.md β†’ Journey 2
Trigger-Based Automation β€” Event-driven messages like T-24h pre-trip reminders and automated review requests post-trip.[v0.2]domain-model.md β†’ NotificationTemplate Β· workflow-orchestration.md

NOTE

The broadcast pipeline itself (IncidentCreated β†’ WhatsApp) targets [v0.2]. STRATEGY_platform-vision.md tags the "Crisis Agent" β€” which AI-drafts messages autonomously β€” as [future]. Initial delivery requires dispatcher-authored or template-based messages with manual approval.


5. AI-Powered Backoffice ​

For operators drowning in manual data entry β€” AI tools that halve operational overhead without touching their existing booking or accounting systems.

Primary Context: Backoffice Β· Wedge Target: Patchwork Operators doing manual PDF transcription Β· Horizon: [v0.2]–[future]

FeatureHorizonAuthoritative Source
"Magic Upload" Parser β€” An AI engine that ingests unstructured partner PDFs and instantly extracts dates, waypoints, and descriptions to auto-draft structured tours.[v0.2]domain-model.md β†’ TourTemplate Β· differentiators.md Β§2 Β· STRATEGY_platform-vision.md β†’ Upload Agent
Compliance Copilot β€” A background engine that monitors EU 561/2006 driving and rest hours, flagging violations before dispatch.[v0.2]–[future]domain-model.md β†’ CrewDutyLog Β· domain-model.md Β§Compliance Rules Boundary Β· differentiators.md Β§2

IMPORTANT

Compliance Copilot phased delivery: Phase 1 provides heuristic warnings based on the single-timestamp CrewDutyLog model (11h daily rest check). Phase 2 introduces the full DutyActivity entity with duration-based logging and source-agnostic compliance evaluation via a stateless ComplianceEvaluator domain service β€” enabling deterministic dispatch blocking. See EU-561 research Β§6.


6. Kalkulations- & Finance Engine ​

Full-cycle tour profitability β€” from pre-departure cost planning (Vorkalkulation) through dynamic pricing to post-departure Soll/Ist reconciliation (Nachkalkulation) and tax-compliant export.

Primary Context: Backoffice + Commerce Β· Wedge Target: Operators lacking margin visibility and tax automation Β· Horizon: [v0.2]–[future]

FeatureHorizonAuthoritative Source
Cost Planning (Vorkalkulation) β€” Aggregates own costs and third-party procurement via Supplier/Allotment, applies FX risk buffers, and validates break-even thresholds.[v0.2]domain-model.md β†’ CostingSheet Β· kalkulations-engine.md Β· ADR-006
Dynamic Price Generation (Preisgestaltung) β€” Generates a full PriceMatrix with demographic, seasonal, and early-bird variants from the cost base, applying operator-defined margin rules.[v0.2]domain-model.md β†’ PriceMatrix Β· kalkulations-engine.md
Β§ 25 UStG Tax Automation β€” Automatically discriminates Eigenleistung (standard VAT) from Fremdleistung (margin taxation) based on Supplier linkage, producing compliant TaxLedgerEntries.[v0.2]–[future]domain-model.md β†’ TaxLedgerEntry Β· ADR-012
Post-Departure Reconciliation (Nachkalkulation) β€” Auto-creates a per-departure profitability ledger aggregating actual revenues and expenses, computing Soll/Ist deltas for cost, revenue, and margin.[v0.2]–[future]domain-model.md β†’ FinancialLedger Β· ADR-002
DATEV Export & Period Locking β€” Generates DATEV-compliant CSV exports and enforces immutable period locks to prevent post-export mutations.[future]domain-model.md β†’ LedgerPeriodLock Β· user-journeys.md β†’ Journey 6

GTM Wedge Strategy ​

The modular monolith's event-driven boundaries enable selling individual subsets as "wedge" products to legacy operators. The system seamlessly imports existing data while proving the platform's value before a full migration.

Entry PointTarget PainExpansion Path
E-Commerce Engine (Subset 1)"We have no online booking"Operator sees conversion data β†’ adopts Digital Fulfillment (2) β†’ adopts Kalkulations-Engine (6) for margin control
Driver Hub (Subset 3)"Our drivers hate clipboards"Drivers adopt the app β†’ dispatchers see real-time data β†’ adopt Crisis Communications (4) β†’ full platform
Magic Upload (Subset 5)"We spend 2 hours per tour typing from PDFs"Backoffice efficiency β†’ operator publishes tours β†’ needs a booking engine (1) β†’ full platform
Kalkulations-Engine (Subset 6)"We don't know our real margins until it's too late"GF gains margin visibility β†’ wants automated booking (1) β†’ wants automated comms (4) β†’ full platform

See PRODUCT_migration-and-onboarding.md for the zero-downtime migration pipeline and concierge onboarding strategy that supports wedge-to-platform expansion.

Internal documentation β€” Busflow