Roadmap
:::info Source
Sourced from docs/ROADMAP.md in the documentation repo.
:::
This is the execution layer. The end-state specification lives in README.md and
docs/01-14+ service docs indocs/03-microservices/. This roadmap sequences how to ship the full product without rework.This file is the index. Detailed execution artifacts live under docs/roadmap/.
Companion Documents
| File | Purpose |
|---|---|
| Slice → Epic → Story Mapping | Every US-1 … US-118 mapped to a slice + milestone + sprint-ready backlog |
| Service Readiness Gates | Per-service "ready" definitions per milestone (domain, API, events, sync, AI, security, perf) |
| Architectural Freeze Points | Which contracts must freeze before each milestone (PlayPackage, Sync, Events, AI Gateway, SCORM, RRULE) |
| Team Capacity & Load Model | Team composition per milestone, critical-path teams, parallelization |
| Slice-Level Risk Register | Risks, severity, impact, mitigation, owner per slice |
| Slice Release Readiness | Functional, NFR, AI, offline, security, multi-tenant, observability, docs gates per slice |
| Customer-Facing Packaging | What customers see, buy, pricing tier, onboarding, docs, support per slice |
| Migration & Backward Compatibility | Schema versioning, tenant migration, bundle migration, AI prompt evolution, SCORM/xAPI versioning |
0. Guiding Principles
- Every slice ships to customers. No dormant code. No "phase 2 dumping."
- Foundations once, reused N times. Tenant isolation, event envelope, AI gateway, sync protocol are built in M0 and never re-architected.
- AI-first and offline-first from M1. They are the moat; late-binding them forces rewrites.
- Monetizable milestones. M2 produces revenue; every subsequent milestone grows ARR.
- Architecture is non-negotiable. DDD boundaries, Clean Architecture, event-only integration, multi-tenant at every layer. Velocity comes from skipping features, never architecture.
- Freeze before build. Contracts (schemas, protocols, ports) freeze before the code that uses them — see architectural-freeze-points.md.
1. Executive Roadmap
| Milestone | Name | Duration | Cumulative | Customers | Primary Value | Revenue |
|---|---|---|---|---|---|---|
| M0 | Platform Foundation | 3 mo | M+3 | Internal only | Tenant iso, event spine, AI gateway, sync spine | — |
| M1 | First Marketable Product (FMP) | 3 mo | M+6 | 3–5 paid design partners | Learner + AI tutor + offline + provisional certs | Pilot fees |
| M2 | First Sellable Product (FSP) | 3 mo | M+9 | Self-serve customers | Authoring MVP + Marketplace + SCORM 1.2 + Billing | First recurring revenue |
| M3 | Competitive Differentiator | 3 mo | M+12 | Enterprise + regulated | SSO + Compliance + SCORM 2004/xAPI + AI Co-Author full | Enterprise contracts |
| M4 | Full Platform GA | 3 mo | M+15 | General availability | Full authoring + live collab + offline authoring + LTI | GA pricing, channel |
| M5 | Post-GA Expansion | 3 mo | M+18 | Scale customers | Multi-region + HIPAA + AI admin v2 + mobile native | Expansion + enterprise upsell |
Fastest path to first revenue: M+9 (M2 complete — marketplace + SCORM + billing live).
Month: 0 3 6 9 12 15 18
│ │ │ │ │ │ │
Stream A │ M0 Platform Foundation │
Stream A │ │ M1 FMP (Learner + AI Tutor + Offline)
Stream B │ │ M2 FSP (Marketplace + SCORM + Billing)
Stream B │ │ M3 Differentiator (Co-Author + SSO + Compliance)
Stream C │ │ M4 GA (Full Authoring + Collab + Offline Authoring)
Stream D │ │ M5 Scale (Mobile + Multi-region + AI Admin)
▲ ▲ ▲ ▲
Design First Active First Revenue GA & Scale
Partners Learners
2. Slice-to-Milestone Mapping
Each slice is independently deployable. Full story-level mapping in slice-epic-story-mapping.md.
| Slice | Milestone | Headline | Epics Included | Stories (ranges) |
|---|---|---|---|---|
| S0 Foundation | M0 | Tenant + event + AI gateway + sync core | EP-1 (partial), EP-2 (partial), EP-16 (core), EP-20 (core), EP-21 (GDPR primitives), EP-22 (a11y baseline) | US-1, US-3, US-4, US-6, US-9, US-115, US-79–US-83, US-102, US-104–US-106, US-109–US-114 |
| S1 Minimal Learner | M1 | Player + AI tutor + offline bundle | EP-8, EP-9 (minimal), EP-10 (core), EP-12 (minimal), EP-14, EP-16 (full), EP-17, EP-19 (core), EP-20 (resume), EP-22 | US-22 (bundle), US-22a, US-40–US-46, US-49–US-51, US-56 (mini), US-69–US-73, US-79–US-83, US-84–US-91, US-95–US-99, US-100 |
| S2 Authoring MVP + AI Co-Author MVP | M2 | Block editor + AI co-author + publish saga | EP-3, EP-4 (HTML + SCORM 1.2 + bundle), EP-5 (core), EP-13 (MVP) | US-12–US-14, US-16, US-17, US-19, US-21, US-22b (import v1), US-23–US-26, US-60, US-62, US-67 |
| S3 Marketplace MVP | M2 | Listings + orders + licenses + payouts | EP-6, EP-9 (issue + verify), EP-10 (webhooks + receipts) | US-27–US-33, US-45–US-46, US-52 |
| S4 Compliance + Enterprise | M3 | Assignments + SSO + RBAC depth + SCORM 2004/xAPI | EP-1 (SAML), EP-2 (full), EP-4 (2004+xAPI), EP-7, EP-9 (templates + recert), EP-13 (full), EP-15 (v1), EP-16 (audit export) | US-2, US-5, US-7, US-8, US-10, US-11, US-116, US-117, US-118, US-20, US-34, US-35–US-39, US-47–US-48, US-61, US-63–US-66, US-68, US-74–US-78, US-83 |
| S5 Full Authoring + Offline Authoring | M4 | Live collab + offline drafts + full media + localization | EP-3 (collab + localize), EP-13 (images + TTS), EP-18, EP-4 (imports), EP-11 (search core), EP-22 (depth) | US-15, US-18, US-64–US-66, US-92–US-94, US-53 |
| S6 Scale + Advanced Insight + Mobile | M5 | AI admin v2 + recs + multi-region + mobile native + LTI | EP-11, EP-12 (full), EP-15 (v2), EP-20 (multi-device full), EP-21 (residency + Merkle) | US-54–US-55, US-57–US-59, US-74–US-78 (depth), US-101–US-103, US-107–US-108 |
3. Critical Path Analysis
3.1 Critical path to first revenue (M+9)
tenant-service ──► identity-service ──► enrollment-service ──► delivery-service ──► progress-service ──► first LEARNER play
│ │
▼ ▼
ai-gateway-service ──► AI Tutor ───────────────────────────────────────────────────────────► Learner demo ──► DESIGN PARTNERS (M+6)
│
▼
sync-service ──► content-service (bundles) ──► Offline player ────────────────────────────► Design partner proof
│
▼
authoring-service ──► catalog-service ──► content-service (SCORM 1.2 export) ──► marketplace-service ──► billing-service ──► FIRST REVENUE (M+9)
3.2 Parallelization
See team-capacity-model.md for exact owner assignments. High-level:
| Can run in parallel from M0 | Rationale |
|---|---|
| Platform (tenant, identity, events, sync, AI gateway) | Foundation |
| Frontend design system + PWA shell | No domain dependency |
| AI Gateway + prompt registry | Freeze-first contract |
| Observability + security tooling | Cross-cutting |
| Unlocks at M0 end | Waiting stream |
|---|---|
| content-service PlayPackage builds | depends on frozen PlayPackage schema |
| authoring-service block editor | depends on frozen block schema |
| marketplace-service + billing | depends on authoring publish saga |
4. Slicing Strategy
Each slice is documented in detail in slice-epic-story-mapping.md. Per-slice readiness gates in slice-release-readiness.md. Per-slice risks in slice-risk-register.md. Per-slice customer packaging in customer-facing-packaging.md. Per-slice migration rules in migration-backward-compatibility.md.
Summary:
Slice 0 — Platform Foundation (M0)
Multi-tenant platform skeleton, event backbone, AI gateway, sync protocol. No customer-facing product. Customer impact: internal only (design-partner NDAs in progress).
Slice 1 — Minimal Learner (M1)
Learner UX + AI tutor + offline playback. Authoring done via operator-assisted JSON ingestion. Customer impact: 3–5 paid pilot orgs.
Slice 2 — Authoring MVP + AI Co-Author MVP (M2)
Block editor with AI co-author (text + quiz + rewrite). Publish saga replaces operator ingestion. Customer impact: self-serve authors on the platform.
Slice 3 — Marketplace MVP (M2)
Listings, pricing, orders, licenses, payments, payouts, SCORM 1.2 export. Customer impact: first dollar; provider revenue.
Slice 4 — Compliance + Enterprise (M3)
Assignments with RRULE, SAML SSO, full RBAC/ABAC/dynamic groups, SCORM 2004 + xAPI + cmi5, certificate templates, AI admin insight v1. Customer impact: enterprise contracts; regulated industries.
Slice 5 — Full Authoring + Offline Authoring (M4)
Live collaborative authoring (Yjs), offline drafts with conflict UI, localization + AI translation, full media pipeline (TTS, images, captions), LTI 1.3. Customer impact: feature parity with Rise + Storyline plus AI + offline net-positives; GA announcement.
Slice 6 — Scale + Advanced Insight + Mobile (M5)
Multi-region data residency, marketplace scale (coupons, bundles, multi-currency payouts), AI admin insight v2 (board summaries, outdated detection, at-risk prediction), mobile native polish (biometric unlock, background sync, widgets), HIPAA healthcare tier, white-label, developer marketplace. Customer impact: scale customers; expansion revenue.
5. Service Readiness (Summary)
Full per-service, per-milestone readiness in service-readiness-gates.md. Each service has eight canonical gates:
- Domain ready — aggregates implemented with invariants; pure TS; unit-tested.
- API ready — OpenAPI published + versioned; idempotency + problem-json + cursor pagination.
- Events ready — subjects + schemas registered; outbox + inbox; Pact contracts.
- Sync ready — applicable services register with sync-service; conflict policy declared.
- AI ready — consumers use
AIClientport; provenance invariant enforced; prompts registered + eval'd. - Observability ready — SLOs defined; OTel end-to-end; dashboards; runbook.
- Performance ready — k6 test meeting target; degradation plan documented.
- Security ready — tenant isolation test green; threat-model updated; pen-test findings closed; audit events emitted.
| Service | M0 gate | M1 gate | M2 gate | M3 gate | M4 gate | M5 gate |
|---|---|---|---|---|---|---|
| identity | L2 (all) | L3 | L3 | L4 (SAML) | L4 | L4 |
| tenant | L2 | L3 | L3 | L4 (ABAC+DG) | L4 | L4 |
| ai-gateway | L3 | L4 | L4 | L4 | L4 | L4 |
| sync | L3 | L4 | L4 | L4 | L4 | L4 |
| delivery | — | L3 | L3 | L4 | L4 | L4 |
| progress | — | L3 | L3 | L4 | L4 | L4 |
| content | — | L3 (bundle+HTML) | L3 (+SCORM 1.2) | L4 (+2004+xAPI) | L4 (+imports) | L4 |
| authoring | — | L1 (block runtime only) | L3 (MVP editor) | L4 (+AI flows) | L4 (+collab+offline) | L4 |
| catalog | — | L2 | L3 | L3 | L4 | L4 |
| marketplace | — | — | L3 | L3 | L4 | L4 |
| billing | — | — | L3 | L3 | L3 | L4 |
| enrollment | — | L3 | L3 | L3 | L3 | L3 |
| assignment | — | — | L1 (manual only) | L4 (RRULE+DG+escalation) | L4 | L4 |
| assessment | — | L3 (serve+score) | L3 | L4 (+AI gen + branching) | L4 | L4 |
| certification | — | L2 (provisional+issue) | L2 | L3 (+templates+recert) | L4 | L4 |
| notification | L3 (core) | L3 | L3 | L4 (+webhooks) | L4 | L4 |
| media | — | L2 (upload+variants+captions) | L3 (+transcoding) | L3 | L4 (+TTS+image+styles) | L4 |
| search | — | L1 (lexical only) | L2 | L3 | L4 (+semantic+recs) | L4 |
| analytics | L1 (skeleton) | L2 (learner mini) | L3 (provider dash) | L4 (+AI insight v1) | L4 | L4 (+AI insight v2) |
Level guide: L1 = skeleton-tested, not customer-facing. L2 = internally usable. L3 = customer-facing MVP meeting target SLOs. L4 = feature-complete per spec. Gate definitions in service-readiness-gates.md.
6. Architectural Freeze Points
See architectural-freeze-points.md for detail. Summary:
| Contract | Frozen before | Owner | Evolution rule |
|---|---|---|---|
EventEnvelope + schema registry | M0 end | Platform | Only additive; breaking → new vN |
TenantId / UserId / AIProvenance VOs | M0 end | Platform | Never change shape |
| Sync protocol (pull/push/resolve + vector clocks) | M0 end | Platform | Additive only; breaking → /sync/v2/ |
AIClient port + Prompt registry format | M0 end | AI Services | Additive only |
| PlayPackage manifest schema | M1 start | Content-Packaging | New fields optional only; breaking → PlayPackage v2 |
| Block registry schema | M2 start | Authoring | New block kinds additive; existing kind changes → block-kind v2 |
| Navigation state machine | M1 start | Delivery | New states additive; transitions stable |
| SCORM 1.2 export shape | M2 start | Content-Packaging | ADL conformance is the contract |
| SCORM 2004 + xAPI vocab + cmi5 | M3 start | Content-Packaging + Progress | ADL conformance |
| RRULE semantics | M3 start | Assignment | RFC 5545 is the contract |
| Conflict-resolution matrix | M0 end | Sync + DDD | Adding aggregates yes; changing policy rarely and documented |
Error code registry (/openapi/errors.json) | M1 end | Platform | Codes never renamed; new codes additive |
| Webhook signature (HMAC + nonce + timestamp) | M2 start | Notification | Never changed |
| AI prompt semver rules | M2 start | AI Services | Prompt versions are append-only; deprecation per tenant |
| Certificate proof format (JWS + JSON-LD) | M3 start | Certification | Additions only |
| LTI 1.3 keys + format | M4 start | Tenant | LTI standard |
7. Team Capacity & Load Model (Summary)
Full detail in team-capacity-model.md.
| Team | M0 (26) | M1 (32) | M2 (40) | M3 (48) | M4 (55) | M5 (62) |
|---|---|---|---|---|---|---|
| Platform (tenant/identity/events/sync/AI-gateway) | 6 | 5 | 5 | 5 | 5 | 6 |
| Learner (delivery/progress/player) | 2 | 6 | 4 | 4 | 4 | 5 |
| Authoring | 1 | 2 | 6 | 5 | 7 | 5 |
| Commerce (marketplace/billing) | — | 1 | 5 | 4 | 4 | 5 |
| Enterprise (assignment/certification/SSO) | — | — | 1 | 6 | 4 | 4 |
| Content-Packaging | 1 | 3 | 3 | 4 | 3 | 3 |
| Data/AI/Insight | 2 | 2 | 3 | 5 | 6 | 7 |
| Media | 1 | 2 | 3 | 3 | 5 | 5 |
| Security + SRE | 3 | 3 | 3 | 4 | 5 | 6 |
| Design + UX | 3 | 3 | 3 | 3 | 3 | 3 |
| PM + Program | 2 | 2 | 3 | 4 | 4 | 4 |
| DevEx + Docs | 2 | 2 | 2 | 2 | 3 | 3 |
| Support + Solutions | 0 | 1 | 2 | 3 | 4 | 4 |
Critical-path teams: Platform (M0), Learner (M1), Authoring + Commerce (M2), Enterprise (M3), Authoring + Collab (M4), Data/AI + Mobile + SRE (M5).
Idle / low-load periods and how to use them:
- Enterprise team in M0–M1 → used for SSO prototyping + SOC 2 documentation.
- Commerce team in M0 → used for billing ACL design + processor-vendor evaluation.
- Authoring team in M1 → builds block runtime (learner side), not editor yet.
8. Slice Risk Register (Summary)
Full register in slice-risk-register.md. Top slice-level risks:
| Slice | Top risk | Severity | Mitigation owner |
|---|---|---|---|
| S0 | Tenant isolation regression | S1 | Platform |
| S1 | Offline bundle tamper/device-binding bugs | S1 | Content + Security |
| S1 | AI tutor hallucination at learner surface | S1 | AI + Learning |
| S2 | Publish saga half-failures | S1 | Platform + Content |
| S3 | Payment compliance + refund edge cases | S1 | Commerce + Legal |
| S4 | RRULE + timezone correctness | S2 | Enterprise |
| S4 | SAML edge cases per IdP | S2 | Enterprise + Platform |
| S5 | Offline authoring conflict UX | S1 | Authoring + Sync |
| S6 | Multi-region migration saga | S1 | Platform + SRE |
9. Timeline
9.1 Gantt (ASCII)
Month: 0 3 6 9 12 15 18
│ │ │ │ │ │ │
├───────────┤───────────┤───────────┤───────────┤───────────┤───────────┤
M0: ███████████ │ Foundation
│ ├───────────┤ │
M1: │ ████████████ │ FMP
│ │ ├───────────┤ │
M2: │ │ ████████████ │ FSP (Revenue)
│ │ │ ├───────────┤ │
M3: │ │ │ ████████████ │ Differentiator
│ │ │ │ ├───────────┤ │
M4: │ │ │ │ ████████████ │ GA
│ │ │ │ │ ├───────────┤
M5: │ │ │ │ │ ████████████│ Scale
▲ ▲ ▲ ▲ ▲ ▲ ▲
Start Pilots Revenue Enterprise GA Multi- ISO/
region HIPAA
9.2 Milestone decision gates
| Gate | Before next milestone |
|---|---|
| M0 → M1 | Two-tenant isolation suite green; AI gateway + sync protocol frozen; SLOs green ≥ 2 wks; event schema registry live |
| M1 → M2 | 3 design partners with active learner sessions; offline play chaos-tested; AI tutor accept-rate > 50 %; pen-test #1 closed |
| M2 → M3 | First revenue realized; SCORM Cloud pass; refund + payout loops healthy; SCORM 1.2 round-trip conformance |
| M3 → M4 | First enterprise customer live; SOC 2 Type I; SAML tested across 4 IdPs; compliance engine live in production |
| M4 → M5 | GA announcement live; ≥ 3 enterprise + ≥ 5 SMB reference customers; 99.9 % uptime sustained 2 quarters; SOC 2 Type II |
| M5 → steady-state | ISO 27001 attestation; multi-region live for ≥ 1 tenant; HIPAA BAA offered |
10. Competitive Positioning (unchanged from v1)
| Milestone | Unlocks | Beats competitor on |
|---|---|---|
| M1 | Offline AI tutor + tamper-evident offline bundles | No LMS has real offline AI. |
| M2 | Self-serve marketplace + AI co-author + SCORM 1.2 export | Articulate has no marketplace + no AI co-author; Docebo clunky authoring. |
| M3 | Compliance + SCORM 2004/xAPI + SAML self-serve | Cornerstone/SAP charge premium; we include it. |
| M4 | Full authoring parity with Rise + Storyline + AI + offline | Articulate 360 ~$1.4k/author/yr; we match + add. |
| M5 | AI admin insight + multi-region + healthcare tier | 360Learning has AI but no offline; Docebo scale but slow AI; we deliver both. |
11. Cross-Cutting Checklists
11.1 Release readiness (every milestone)
- All Pact contracts green.
- Tenant isolation regression suite green.
- WCAG 2.2 AA axe-clean + manual SR audit (player + author per release).
- LTR + RTL visual regression green.
- SBOM generated + signed.
- Security pen-test closed.
- DR drill performed.
- AI prompt regression + safety eval + bias eval green for every new prompt version.
- Offline E2E (airplane-mode) green.
- Multi-device sync test green.
- OpenAPI + event schemas published.
- Runbooks + on-call rota.
- Status page up-to-date.
- Feature flags for new capabilities default OFF for existing tenants.
- Per-slice readiness gates met (slice-release-readiness.md).
- Customer-facing packaging ready (customer-facing-packaging.md).
- Migration + back-compat rules respected (migration-backward-compatibility.md).
11.2 Architecture guardrails (every PR)
- Domain layer imports no framework.
- Every write endpoint requires
Idempotency-Key. - Every aggregate persists
tenantId. - Every AI artifact carries
aiProvenance. - Every replicable aggregate declares a conflict policy.
- No cross-service DB reads.
- No synchronous chain > 2 hops.
- No AI call bypasses ai-gateway-service.
12. Why This Sequence
- Moat first (M1). AI tutor + offline learning are features incumbents can't copy quickly.
- Monetize early (M2). Real-world discipline from paying customers.
- Enterprise checkboxes at M3. SSO + compliance + SCORM 2004/xAPI as a package.
- Authoring parity at M4. Ship feature match with Articulate with AI + offline as net-positives.
- Scale + regulated tiers at M5. Multi-region + HIPAA + white-label capture expansion revenue.
- Architecture remains intact because every foundational concern lands in M0 and is never revisited structurally.
If this document ever conflicts with the end-state specification (01–14), the specification wins — this roadmap only sequences its delivery.