Skip to content

Scale Path: One Spine, Many Domains

The pitch in one line

Same architecture for claims, fraud, inventory, retention, and product quality -- only the events and reason codes change.


The universal pattern

%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#1e3a5f', 'primaryTextColor': '#ffffff', 'primaryBorderColor': '#0d253f', 'lineColor': '#64748b', 'fontFamily': 'Inter, system-ui, sans-serif'}}}%%
graph LR
    classDef trigger fill:#ef4444,stroke:#b91c1c,color:#fff,stroke-width:2px,font-weight:bold
    classDef context fill:#f59e0b,stroke:#d97706,color:#fff,stroke-width:2px,font-weight:bold
    classDef ai fill:#8b5cf6,stroke:#6d28d9,color:#fff,stroke-width:2px,font-weight:bold
    classDef action fill:#3b82f6,stroke:#1d4ed8,color:#fff,stroke-width:2px,font-weight:bold
    classDef feedback fill:#10b981,stroke:#059669,color:#fff,stroke-width:2px,font-weight:bold

    E["fa:fa-bolt Domain Event"]:::trigger
    C["fa:fa-layer-group Fuse Context"]:::context
    D["fa:fa-brain Rules + AI Explain"]:::ai
    A["fa:fa-user-check Operator Action"]:::action
    F["fa:fa-chart-line Outcome + KPI"]:::feedback

    E -->|"ingest"| C -->|"enrich"| D -->|"recommend"| A -->|"record"| F
    F -.->|"continuous loop"| E

This pattern repeats across every Asurion domain. The architecture is the constant. The events are the variable.


Five domains, one architecture

%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#1e3a5f', 'primaryTextColor': '#ffffff', 'primaryBorderColor': '#0d253f', 'lineColor': '#64748b', 'fontFamily': 'Inter, system-ui, sans-serif'}}}%%
graph TB
    classDef built fill:#10b981,stroke:#059669,color:#fff,stroke-width:2px,font-weight:bold
    classDef designed fill:#3b82f6,stroke:#1d4ed8,color:#fff,stroke-width:2px
    classDef spine fill:#1e3a5f,stroke:#0d253f,color:#fff,stroke-width:2px,font-weight:bold

    subgraph Spine ["Reusable spine (built)"]
        direction LR
        Dashboard["fa:fa-monitor-dashboard Dashboard<br/>KPIs + WebSocket"]:::spine
        Clarifier["fa:fa-sitemap Clarifier<br/>LangGraph 8-node"]:::spine
        Pipeline["fa:fa-database Data Pipeline<br/>SQL Gen + Safety"]:::spine
        Explain["fa:fa-brain AI Explain<br/>Bedrock 2-tier"]:::spine
    end

    Claims["fa:fa-shield-check Claims<br/>BUILT"]:::built
    Fraud["fa:fa-user-secret Fraud<br/>designed"]:::designed
    Inventory["fa:fa-boxes-stacked Inventory<br/>designed"]:::designed
    Retention["fa:fa-heart Retention<br/>designed"]:::designed
    Quality["fa:fa-magnifying-glass-chart Product Quality<br/>designed"]:::designed

    Spine --> Claims
    Spine --> Fraud
    Spine --> Inventory
    Spine --> Retention
    Spine --> Quality
Details
Events damage_detected, claim.submitted
Reason codes coverage, battery, inventory, slot
Actions Repair, Replace, Self-service
Reused Everything -- this IS the spine
Details
Events Integrity signals, anomaly triggers
Reason codes Velocity, geo-mismatch, device mismatch
Actions Hold, Escalate, Monitor
Reused Dashboard + Clarifier + data pipeline + AI explain
Details
Events Warehouse velocity, stock alerts
Reason codes Demand forecast, lead time
Actions Rebalance, Substitute, Expedite
Reused Dashboard + Clarifier + data pipeline + AI explain
Details
Events Engagement drops, churn signals
Reason codes Tenure, LTV, recent interactions
Actions Outreach, Upgrade, Discount
Reused Dashboard + Clarifier + data pipeline + AI explain
Details
Events Defect spikes, claim patterns
Reason codes Regional, product line, severity
Actions Engineering alert, KB article, Recall
Reused Dashboard + Clarifier + data pipeline + AI explain

Production mapping

Same contracts, managed services

%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#1e3a5f', 'primaryTextColor': '#ffffff', 'primaryBorderColor': '#0d253f', 'lineColor': '#64748b', 'fontFamily': 'Inter, system-ui, sans-serif'}}}%%
graph LR
    classDef hackathon fill:#f59e0b,stroke:#d97706,color:#fff,stroke-width:2px
    classDef production fill:#10b981,stroke:#059669,color:#fff,stroke-width:2px,font-weight:bold
    classDef arrow fill:none,stroke:none

    DC["fa:fa-laptop Docker Compose"]:::hackathon -->|"becomes"| ECS["fa:fa-cloud ECS / EKS"]:::production
    PG["fa:fa-database Postgres"]:::hackathon -->|"becomes"| Aurora["fa:fa-database Aurora"]:::production
    RD["fa:fa-bolt Redis"]:::hackathon -->|"becomes"| EC["fa:fa-bolt ElastiCache"]:::production
    HTTP["fa:fa-globe HTTP Ingest"]:::hackathon -->|"becomes"| Kafka["fa:fa-stream Kafka / Kinesis"]:::production
    Local["fa:fa-file Data Dictionary"]:::hackathon -->|"becomes"| Glue["fa:fa-folder-tree S3 + Glue Catalog"]:::production
    Vol["fa:fa-hard-drive Docker Volumes"]:::hackathon -->|"becomes"| S3["fa:fa-cloud EFS / S3"]:::production
Hackathon (today) Production (tomorrow)
Docker Compose ECS / EKS
Postgres 16 Aurora / DynamoDB
Redis 7 ElastiCache
HTTP event ingest Kafka / Kinesis
Local data dictionary S3 + Glue Catalog
Docker volumes EFS / S3

ADR-001

"We swapped managed services for open-source boxes on a laptop, but the dataflow and contracts are what you'd take to production."


What doesn't change

These survive the transition to production unchanged

Invariant Why it matters
API contracts Same REST + SSE + WebSocket endpoints
WidgetSpec schema Same 4-variant discriminated union (kpi | chart | table | custom)
Metric catalog Same governance model, same atomic promotion
SQL safety layer Same sqlglot checks, same 7-rule validation
Eval harness Same static checks + tsc validation

Speaker notes (45-60s)
  • Point to the spine diagram: "Each new domain needs new events, new reason codes, new actions. The dashboard, Clarifier, data pipeline, and AI explanation layer are reused as-is."
  • Click through the tabs: "Claims is built and live. The other four follow the same pattern -- plug in domain events and reason codes."
  • Production mapping: "Postgres becomes Aurora. Redis becomes ElastiCache. HTTP ingest becomes Kafka. The contracts don't change."
  • Close strong: "This is the moment we go from pockets of innovation to enterprise-wide advantage. One architecture, five domains, real data."