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."