Home

Migration Paths: Coexisting with Legacy Inventory

May 12, 2025 • ~32 min read

Inventory Migration Offer & Order Architecture Strategy

1. Executive Summary & Plain Definitions

Airlines want modern Offer & Order retailing (dynamic availability, continuous pricing, attribute bundles) but still rely on a legacy Passenger Service System (PSS) / host for core inventory decrements, schedule integrity, ticketing, interline settlement, and dozens of embedded processes. A “big bang” replacement is rarely feasible. Coexistence—running new and old side-by-side with controlled domain carve‑outs—is the pragmatic path.

Plain Definitions (No Jargon)

Key Idea: Shrink the legacy system’s surface area to the few things it does best (authoritative seat decrement, regulatory clearing, deep interline), while surrounding it with modern services and gradually internalizing those remaining responsibilities.

2. Problem Framing & Constraints

Goal: Introduce modern retail capabilities without losing reliability, auditability, or partner interoperability.

Constraints: High change cadence risks outages; certification with partners; regulatory retention of ticket artifacts; complex refund/exchange logic coded in legacy.

3. Migration Drivers vs Stall Forces

Drivers (Push Forward)Stall Forces (Hold Back)Countermeasure
Need faster feature velocity (bundles, dynamic pricing)Legacy release cycle slowStrangler facade + micro frontends
Cost of custom logic in hostHigh switching costValue accounting / ROI cases per slice
Offer & Order industry shiftPartner readiness variableChannel segmentation, fallback logic
Data latency & limited observabilityOpaque host logsEvent capture + provenance envelope

4. Scope of Truth Matrix

Define, for each domain artifact, who is authoritative (Write), who is a subscriber (Read), and transitional notes.

ArtifactLegacy Host (Now)Modern Layer (Target)Transition Comment
Seat Capacity / RBD countsWriteWrite (attribute pools)Shadow read → dual write → migration token
PNR / OrderWrite (PNR)Write (Order)Dual record with cross-reference keys
Ticket / EMDAuthoritativeVirtual coupon mappingBridge until pure order settlement accepted
Ancillary InventoryMixed / manualCentral ancillary serviceEarly carve-out (low coupling)
Pricing / BundlingHost + filed faresOffer engine / dynamic pricingFacade intercept, pass fallback anchor
Loyalty EntitlementsLoyalty systemContext APIRead-only pass-through first

5. Coexistence Patterns (Catalog)

  1. Strangler Facade: New API sits in front; routes some calls to modern services, others to host. Gradually rewires underlying endpoints.
  2. Shadow Mode: Modern service processes requests in parallel (read-only) to measure divergence before switching writes.
  3. Dual Write with Reconciliation: Both host and new system receive writes; periodic diff & repair ensures drift detection.
  4. Event Sourcing Wrapper: Capture host transactions as events, rebuilding state externally to validate completeness.
  5. Carve-Out by Product: Move ancillaries, seat selection, bundles first (lower coupling) while core seat inventory stays legacy.
  6. Channel Segmentation: Direct + mobile use new Offer path; GDS/EDIFACT remain legacy until interline maturity.
  7. Temporal Cut (Forward Only): All new departures after date X use new pricing path; older inventory remains host-driven.
  8. Market / O&D Slice: Pilot on a subset of markets (e.g. domestic short-haul) to minimize risk radius.

6. Pattern Selection Decision Tree

Decision Inputs → Pattern ------------------------------------------------------------- Low risk tolerance + limited monitoring → Shadow Mode first Need immediate feature surface → Strangler Facade High divergence risk objects → Dual Write + Reconciliation Ancillaries loosely coupled → Carve-Out by Product Partners not ready → Channel Segmentation Complex schedule season change → Temporal Cut (post-season)

7. Domain Boundary Redraw (Target)

Split monolith responsibilities into bounded contexts:

8. Conceptual Diagrams

Strangler Facade Concept ---------------------------------------------------- Clients (Web / NDC / Mobile) | API Gateway | +---------------------+ | Routing Rules | | /inventory -> host (phase 1) | | /offer -> new offer svc | | /ancillary -> new ancillary | +---------------------+ | Legacy Host (reduced call set) | Event Bus (captures host commits) | Modern Data Lake / State Projections
Shadow Mode Flow ---------------------------------------------------- Request -> Legacy Path (authoritative) -> Modern Path (shadow) Compare: availability, price, latency If divergence < threshold for N days → promote modern path to live
Dual Write + Reconciliation ---------------------------------------------------- Client Commit -> Modern Order Service (persist) -> Legacy Host (PNR / ticket) <- Acks Event Log: orderId, hostPnrId, hash(state) Reconciler: query host snapshot recompute hash if mismatch -> repair + alert
RBD → Attribute Migration ---------------------------------------------------- Phase 1: RBD drives availability; attributes derived Phase 2: Attribute capacity tracked in parallel (shadow) Phase 3: Offer requests attribute capacity; map to RBD at commit Phase 4: Direct channel uses attribute only; RBD stub for partners Phase 5: Interline tokens accept attribute semantics -> retire RBD

9. Phase Roadmap (0–36 Months)

  1. 0–3 Months Discovery: Inventory dependencies, classify APIs by change risk, instrument baseline divergence metrics.
  2. 4–6 Facade & Events: Deploy API gateway; implement publish of host booking/modify/cancel events with schema & sequence numbers.
  3. 7–12 Shadow & Carve-Out: Shadow availability & pricing; move ancillaries + rich content to new services; start dual IDs (orderId + PNR).
  4. 13–18 Dual Write Core Orders: Orders persisted natively + mirrored to host PNR; reconciliation jobs; limited dynamic pricing live on direct.
  5. 19–24 Attribute Capacity Pilot: Parallel tracking of attribute pools; offer engine consumes them for selected markets.
  6. 25–30 RBD Suppression (Direct): Direct channel commits via order only; host receives derived booking for compliance. Begin ticket minimization (virtual coupons).
  7. 31–36 Interline & Settlement Evolution: Introduce order-based clearing adapter; expand attribute capacity to majority of network; methodically reduce RBD reliance to exception cases.

10. Operating the Hybrid World

11. Availability & Control Bridging

Key challenge: preventing divergence between host seat counts and modern attribute-based offers.

12. Order / Ticket Duality & Transition

Phase A: Create order + PNR + ticket; both reference each other. Phase B: Order primary; PNR minimal skeleton; ticket virtualized. Phase C: Order only; produce bridging artifacts for external clearing.

13. RBD → Attribute Capacity Migration

  1. Define attribute taxonomy (flexibility, change penalty, baggage, seat pitch, lounge, priority).
  2. Map existing RBD -> attribute set (v1 mapping table with versionId).
  3. Track attribute-level capacity shadowing RBD bookings.
  4. Introduce attribute-based availability endpoint (internal) with RBD “shim” translator.
  5. Switch direct channel to attribute endpoint; maintain partner RBD translation.
  6. Optimize RM to produce protection levels by attribute cluster, not just RBD nesting.

14. Data, Events & Reconciliation

Event Schema (Illustrative)

SeatDecrementEvent {
  eventId, sequence, flightLegKey, rbd, seats: -1,
  cause: BOOK|CXL|INV_ADJ,
  hostTimestamp, producer="host"
}

OrderCreated {
  orderId, channel, items[], total, currency, pricingVersion,
  inventoryVersion, refPnrId?, createdAt
}

Reconciliation Types:

Data Lineage: Each order stores a provenance object referencing pricing model, mapping version, tax table version, guardrail set.

15. Risk Register & Mitigations

RiskImpactMitigation
Divergent Seat CountsBooking failures / lost salesSequence gap detection + version fencing + read-repair
Dual Write InconsistencyRefund/exchange errorsIdempotent keys + reconciliation audit
Latency RegressionConversion dropPerformance budgets, async pre-compute, circuit breakers
Partner RejectionInterline settlement disputesFallback anchor mapping, monitoring proration variance
Operational ComplexityIncident MTTR riseRunbooks + unified observability dashboard
Scope CreepDelayed benefitsValue-based backlog gating per phase
Regulatory Non-ComplianceFines / brand harmCompliance review gates, audit trail immutability

16. KPIs & Observability

17. Ops Runbook & Incident Handling

  1. Detection: Alert triggers on divergenceRate > threshold or commit failure spike.
  2. Scope: Identify flight/date, channel, pricingMode, versions.
  3. Compare State: Pull host snapshot vs projection hash.
  4. Classify Root Cause: Gap, latency backlog, mapping version mismatch, dual write failure.
  5. Mitigation: Force snapshot sync; temporarily route affected O&D to legacy path.
  6. Audit Log: Append incident record with cause, duration, lost revenue estimate.
  7. Preventive Action: Add or tune alert, backlog ticket for structural fix.

18. Security, Trust & Integrity

19. Interline & Alliance Transitional Strategy

20. Revenue Accounting & Settlement Adaptation

Interim: Orders + tickets coexist; accounting uses ticket coupons as primary but logs order decomposition for audit. Later: Order line ledger drives revenue recognition; produce “clearing view” transforms for BSP/ARC until industry order clearing matures.

21. Governance & Change Management

22. Implementation Checklist

23. Plain-Language Glossary

24. References & Disclaimer

Disclaimer: This article synthesizes generally known architectural and operational concepts. It omits proprietary vendor implementation details, confidential algorithms, and commercially sensitive integration specifics. Validate all migration steps against contractual obligations, regulatory compliance (pricing, taxation, consumer display), data protection, and safety/security policies. Examples are illustrative; real implementations require detailed technical and legal review.

Trademarks and product names belong to their respective owners. No endorsement implied.


Back to all blogs