Skip to main content

Epics and User Stories — Ghasi-SMS-Gateway

Status: populated (extended for national-backbone) Owner: Platform Engineering Last updated: 2026-04-20 Companion: 07-epics-and-user-stories.JIRA_IMPORT.csv (Jira-importable, new/updated items only) Related ADR: ADR-0004 National-Backbone Resilience Critique: docs/reports/00-critique-and-gap-analysis.md


0. Change log

  • v1.2 (2026-04-20) — Extended for national SMS backbone. Existing IDs (EP-PLAT-01..05, all per-service EP-{PREFIX}-NN and US-{PREFIX}-NNN) are preserved unchanged. Added: 15 national-backbone cross-cutting epics (EP-PLAT-NB-01..15); per-service extension epics on existing 14 services where national-grade behaviour requires new stories; full epic catalog for 12 new bounded contexts (firewall, number-intel, sender-id, numbering, CDR, CBC, channel-router, fraud-intel, regulator, dev-portal, campaign, consent-ledger). Documented compliance ID reconciliation (EP-CE-* is canonical; CE-E* is to be retired in services/compliance-engine/JIRA_IMPORT.csv). Customer-portal Firebase contradiction flagged for fix in US-CUST-01-01.
  • v1.1 (2026-04-18) — Initial populated cross-cutting catalog with EP-PLAT-01..05.

1. Purpose

This document is the canonical index of all platform-wide and service-level epics for the Ghasi-SMS-Gateway. Each epic links to its full user stories in the owning service's _report.md. The document also tracks cross-cutting epics that span multiple services and the national-backbone uplifts ratified in ADR-0004.


2. ID Prefix Registry

2.1 Existing 14 services (canonical)

PrefixServiceStatus
EP-KONG / US-KONGapi-gateway (Kong edge gateway)populated
EP-ORCH / US-ORCHsms-orchestratorpopulated
EP-AUTH / US-AUTHauth-servicepopulated
EP-RE / US-RErouting-enginepopulated
EP-SC / US-SCsmpp-connectorpopulated
EP-DLR / US-DLRdlr-processorpopulated
EP-HOOK / US-HOOKwebhook-dispatcherpopulated
EP-BILL / US-BILLbilling-servicepopulated
EP-NOTIF / US-NOTIFnotification-servicepopulated
EP-OPS / US-OPSoperator-management-servicepopulated
EP-ANLYT / US-ANLYTanalytics-servicepopulated
EP-CUST / US-CUSTcustomer-portalpopulated
EP-ADMDASH / US-ADMDASHadmin-dashboardpopulated
EP-CE / US-CEcompliance-enginepopulated
EP-PLATPlatform cross-cutting (existing)populated
EP-PLAT-NBPlatform cross-cutting (national-backbone, new)new in v1.2

2.2 New bounded contexts (national-backbone)

PrefixServiceStatus
EP-FW / US-FWsms-firewall-servicenew
EP-NI / US-NInumber-intelligence-servicenew
EP-SID / US-SIDsender-id-registry-servicenew
EP-NUM / US-NUMnumbering-servicenew
EP-CDR / US-CDRcdr-mediation-servicenew
EP-CBC / US-CBCcbc-bridge-servicenew
EP-CHAN / US-CHANchannel-router-servicenew
EP-FRAUD / US-FRAUDfraud-intel-servicenew
EP-REG / US-REGregulator-portal-servicenew
EP-DEV / US-DEVdeveloper-portal-servicenew
EP-CAMP / US-CAMPcampaign-servicenew
EP-CONS / US-CONSconsent-ledger-servicenew

2.3 ID reconciliation note (compliance-engine)

services/compliance-engine/_report.md uses canonical IDs EP-CE-01..10 and US-CE-001..045. The same service's services/compliance-engine/JIRA_IMPORT.csv uses legacy IDs CE-E1..10 and CE-1..45. EP-CE-* / US-CE-* is canonical under this registry. The CSV must be regenerated under canonical IDs (tracked as US-PLAT-NB-005 under EP-PLAT-NB-15).


3. Cross-Cutting Platform Epics — existing (PRESERVED, unchanged)

The five existing platform-level epics from v1.1 remain authoritative. They are reproduced here verbatim with no edits to their IDs, status, or scope.

EP-PLAT-01 · Kong Edge Gateway Adoption (ADR-0001)

Status: Active | Priority: P0 | Owner: Platform Engineering

Retire the custom NestJS api-gateway service and replace it with Kong Gateway as the north-south edge. Migrate TLS termination, JWT validation, API key authentication, rate limiting, and correlation ID injection to Kong. Move HTTP submit, Zod validation, and idempotency into sms-orchestrator.

Services impacted: api-gateway, sms-orchestrator, auth-service, all customer-facing services.

Child epics by service:


EP-PLAT-02 · End-to-End Outbound SMS Pipeline

Status: Active | Priority: P0 | Owner: Platform Engineering

Implement the complete outbound SMS processing pipeline from HTTP accept to carrier delivery, including idempotency, routing, SMPP transmission, DLR correlation, billing, and webhook delivery.

Services impacted: sms-orchestrator, routing-engine, smpp-connector, dlr-processor, billing-service, webhook-dispatcher.

Child epics:


EP-PLAT-03 · Platform Observability Stack

Status: Active | Priority: P1 | Owner: Platform Engineering

Ensure all 14 services expose consistent Prometheus metrics, structured JSON logs, and OTel traces so that end-to-end message flows are observable in Grafana/Loki/Tempo.

Standards:

  • Prometheus metrics on /metrics (not via Kong)
  • Structured JSON logs with traceId, spanId, messageId, tenantId
  • OTel spans propagated via W3C TraceContext through Kong → services → NATS
  • Liveness + readiness probes on all services

EP-PLAT-04 · Operator Configuration & Health Management

Status: Active | Priority: P1 | Owner: Platform Engineering

Provide a complete operator lifecycle: CRUD for SMPP operator configs (stored with Vault credentials), routing rule management, health event propagation, and live TPS adjustment.


EP-PLAT-05 · Customer Self-Service & Admin Tools

Status: Active | Priority: P2 | Owner: Platform Engineering / Frontend Team

Deliver the customer portal (self-service API keys, test SMS, message logs, webhooks, billing) and admin dashboard (operators, routing, monitoring, user management).


4. Cross-Cutting Platform Epics — national-backbone (NEW)

These 15 cross-cutting epics implement the architectural uplifts in ADR-0004. Each carries its own user stories under prefix US-PLAT-NB-NNN and is fully detailed in §11 below and in the Jira CSV.

Epic IDTitlePriorityOwnerStoriesPoints
EP-PLAT-NB-01Multi-Region Active-Active Deployment (kbl/mzr + dxb DR)P0SRE + Platform ArchUS-PLAT-NB-001..01047
EP-PLAT-NB-02Control-Plane / Data-Plane Node-Pool SeparationP0SREUS-PLAT-NB-011..01416
EP-PLAT-NB-03NATS JetStream Multi-Cluster (super-cluster + leaf)P0SREUS-PLAT-NB-015..01818
EP-PLAT-NB-04HSM-Backed Key Custody & Envelope EncryptionP0SecurityUS-PLAT-NB-020..02631
EP-PLAT-NB-05Service Mesh + SPIFFE/SPIRE Workload IdentitiesP0Security + SREUS-PLAT-NB-027..03021
EP-PLAT-NB-06National Priority Lanes (P0/P1/P2/P3/P4) end-to-endP0Platform ArchUS-PLAT-NB-031..03626
EP-PLAT-NB-07CDR Pipeline Separate from Billing EventsP0Commerce + RegulatorUS-PLAT-NB-037..04229
EP-PLAT-NB-08Trusted-Tenant Fast-Path (compliance shadow + signed templates)P1Trust & SafetyUS-PLAT-NB-043..04721
EP-PLAT-NB-09NFR/SLA Catalog & Error-Budget PolicyP0SREUS-PLAT-NB-048..05218
EP-PLAT-NB-10STRIDE Threat Models per ServiceP1SecurityUS-PLAT-NB-053..05613
EP-PLAT-NB-11Supply-Chain Security (SBOM, signed images, admission)P0Security + DevExUS-PLAT-NB-057..06016
EP-PLAT-NB-12NOC Dashboards, Runbook Catalogue, On-Call ToolingP1SREUS-PLAT-NB-061..06521
EP-PLAT-NB-13Chaos Engineering Programme + GameDaysP1SREUS-PLAT-NB-066..06916
EP-PLAT-NB-14Public Status Page + Per-Route SLO DashboardP2SRE + DevRelUS-PLAT-NB-070..07210
EP-PLAT-NB-15Risk Register, Compliance Certifications, ID ReconciliationP1Security + ComplianceUS-PLAT-NB-073..07718

5. Per-Service Extension Epics (national-backbone deltas to existing 14 services)

These extend existing service backlogs with new epics for national-grade behaviour. They preserve all existing IDs and append new ones in the next available range per service.

5.1 api-gateway (Kong) — new

Epic IDTitlePriorityStories
EP-KONG-06Adaptive Edge Defence (JA3, per-tenant adaptive rate-limit, tarpit lane)P0US-KONG-030..035
EP-KONG-07mTLS Upstream Policy for Sensitive Routes (compliance, regulator, CBC)P0US-KONG-036..038

5.2 auth-service — new

Epic IDTitlePriorityStories
EP-AUTH-06Tenant Sub-Org / Reseller Hierarchy + Cross-Tenant Token Revocation PropagationP1US-AUTH-050..056
EP-AUTH-07HSM-Backed JWT Signing (replaces Vault-only key handling per EP-PLAT-NB-04)P0US-AUTH-060..063
EP-AUTH-08Break-Glass Admin Access + WebAuthn for Platform StaffP0US-AUTH-070..073

5.3 sms-orchestrator — new

Epic IDTitlePriorityStories
EP-ORCH-06Priority-Lane Routing on Inbound Submit (X-Priority-Lane, tenant-tier-based defaults)P0US-ORCH-050..054
EP-ORCH-07Trusted-Tenant Fast-Path Submit (signed-template short-circuit)P1US-ORCH-060..064

5.4 routing-engine — new

Epic IDTitlePriorityStories
EP-RE-05Quality-Adaptive Routing (live operator quality scoring + ML-assisted weights)P1US-RE-016..022
EP-RE-06Per-Tenant Route Preferences, Exclusions, and Regulatory RestrictionsP0US-RE-023..028
EP-RE-07Time-of-Day / Hour-Bucket Cost Tables and Quiet-Window HonourP1US-RE-029..032

5.5 smpp-connector — new

Epic IDTitlePriorityStories
EP-SC-05Per-MNO × Per-Direction Connector Pool (smpp-connector-{mno}-{tx|rx|trx}) with Bind AffinityP0US-SC-016..021
EP-SC-06Per-Bind Submit Window, Sequence-Number Manager, and Concatenation BufferP0US-SC-022..027
EP-SC-07ESME_R* Error Taxonomy: ESME_RTHROTTLED back-off, ESME_RSUBMITFAIL half-close, ESME_RMSGQFUL drainP0US-SC-028..031
EP-SC-08Dedicated Egress IP Pools per MNO (NetworkPolicy + egress NAT)P0US-SC-032..034
EP-SC-09Pashto/Dari/Arabic UCS-2 Conformance Suite (encoding round-trip + segment count parity with billing)P1US-SC-035..037

5.6 dlr-processor — new

Epic IDTitlePriorityStories
EP-DLR-06Inbound DLR Idempotency & Replay QuarantineP0US-DLR-015..017
EP-DLR-07Segment-Aware DLR Aggregation for Concatenated SMSP1US-DLR-018..020
EP-DLR-08Orphan-DLR Burial Queue with Time-Boxed RetentionP1US-DLR-021..022

5.7 webhook-dispatcher — new

Epic IDTitlePriorityStories
EP-HOOK-05Customer-Endpoint Circuit Breaker + Tenant-Portal AlertsP0US-HOOK-015..019
EP-HOOK-06Per-Tenant Egress Pool, Back-Pressure, Rate-Limit CapsP0US-HOOK-020..023
EP-HOOK-07Signing-Key Rotation with Dual-Sig Grace PeriodP1US-HOOK-024..026
EP-HOOK-08mTLS-to-Customer Webhooks (optional, per-tenant)P2US-HOOK-027..028

5.8 billing-service — new

Epic IDTitlePriorityStories
EP-BILL-06Multi-Currency (AFN, USD), Tax Engine, FX Rate Pinning per InvoiceP0US-BILL-037..042
EP-BILL-07Pre-Paid Wallet + Post-Paid Invoice Dual Model + Credit NotesP0US-BILL-043..049
EP-BILL-08Reserved-Capacity / Committed-Throughput SLA-Backed Pricing TiersP1US-BILL-050..054
EP-BILL-09Revenue Assurance / Leakage Detection (vs. CDR)P1US-BILL-055..058

5.9 notification-service — new

Epic IDTitlePriorityStories
EP-NOTIF-07National Incident Broadcasts to All Platform Stakeholders (multi-channel)P1US-NOTIF-039..042

5.10 operator-management-service — new

Epic IDTitlePriorityStories
EP-OPS-02Operator-ID Renaming with Zero In-Flight Loss (atomic config swap)P0US-OPS-009..011
EP-OPS-03MNO Onboarding Playbook & Runbook GeneratorP1US-OPS-012..014
EP-OPS-04TPS-Contract Compliance Auditor (cron + alerts)P1US-OPS-015..017

5.11 analytics-service — new

Epic IDTitlePriorityStories
EP-ANLYT-02ClickHouse Cold-Tier Analytics + Pre-Aggregated CubesP1US-ANLYT-011..015
EP-ANLYT-03Per-MNO Quality Dashboards (delivery rate, latency, cost)P1US-ANLYT-016..019

5.12 customer-portal — new + critical fix

Epic IDTitlePriorityStories
EP-CUST-07Session Security Hardening (CSP, COEP, COOP, Trusted-Types, SRI)P0US-CUST-07-01..05
EP-CUST-08Customer Success Surface (QBR exports, TAM tooling, success metrics)P2US-CUST-08-01..04
EP-CUST-09Pashto/Dari/RTL Localisation Audit + Translation MemoryP1US-CUST-09-01..04

Critical fix: Update US-CUST-01-01 (Customer Login) to use Keycloak OIDC PKCE as the primary flow per ADR-0002. Firebase remains only as a feature-flagged legacy fallback. This is tracked as US-CUST-01-01-R (revision) in the Jira CSV.

5.13 admin-dashboard — new

Epic IDTitlePriorityStories
EP-ADMDASH-09NOC Single-Pane-of-Glass (per-MNO bind, queue depth, TPS, DLR latency, fraud signals)P0US-ADMDASH-09-01..06
EP-ADMDASH-10Regulator Workbench (CDR submission status, LI request queue, complaint triage)P1US-ADMDASH-10-01..05
EP-ADMDASH-11Sender-ID Registry Review WorkbenchP1US-ADMDASH-11-01..04

5.14 compliance-engine — new

Epic IDTitlePriorityStories
EP-CE-11National Default Rule-Sets (regulator-required keyword/temporal/sender-ID rules)P0US-CE-046..050
EP-CE-12External-LLM Hard Default-Off + Per-Tenant Opt-In with DPIA AcknowledgementP0US-CE-051..053
EP-CE-13Trusted-Tenant Template Approval Workflow (paired with EP-PLAT-NB-08)P1US-CE-054..057

6. New Bounded Context Epics (12 new services)

Full _report.md files will be created at services/<svc>/_report.md once these are scaffolded under the standard 17-doc template. Stories below are tracked in the Jira CSV and are the source-of-truth until per-service reports are authored.

6.1 sms-firewall-service (EP-FW-*)

Epic IDTitlePriorityStories
EP-FW-01Inbound MO Firewall (filter origin, content, rate, geo)P0US-FW-001..006
EP-FW-02Transit MT Firewall (peer aggregator hygiene, grey-route exclusion)P0US-FW-007..011
EP-FW-03National Blocklist Federation (regulator + cross-MNO sharing)P1US-FW-012..015
EP-FW-04Firewall Admin REST + Audit LogP1US-FW-016..019

6.2 number-intelligence-service (EP-NI-*)

Epic IDTitlePriorityStories
EP-NI-01HLR/HSS Lookup with Cache (MSISDN → MNO, line-type, country)P0US-NI-001..006
EP-NI-02MNP (Mobile Number Portability) Registry & Daily Reconciliation with MNOsP0US-NI-007..012
EP-NI-03EIR/CEIR Cross-Check (IMEI, stolen-device exclusion)P1US-NI-013..016
EP-NI-04Public Lookup API (tenant-callable, billable, cached)P1US-NI-017..021

6.3 sender-id-registry-service (EP-SID-*)

Epic IDTitlePriorityStories
EP-SID-01Sender-ID Registration with KYC of RegistrantP0US-SID-001..005
EP-SID-02Verification (DNS-TXT / OTP / Notarised Document)P0US-SID-006..010
EP-SID-03Suspension, Rotation, Regulator Export, Public SearchP0US-SID-011..016
EP-SID-04Sender-ID Reputation Scoring (cross-fed from compliance + fraud)P1US-SID-017..020

6.4 numbering-service (EP-NUM-*)

Epic IDTitlePriorityStories
EP-NUM-01MSISDN/Short-Code Inventory + Lifecycle (lease, recall, expiry)P1US-NUM-001..006
EP-NUM-02Number Reservation, Hold, and Release WorkflowP1US-NUM-007..010
EP-NUM-03Per-Tenant Number Pool ManagementP2US-NUM-011..014

6.5 cdr-mediation-service (EP-CDR-*)

Epic IDTitlePriorityStories
EP-CDR-01Canonical CDR Schema, Hourly Roll-up, Hash-Chained Append-Only StorageP0US-CDR-001..006
EP-CDR-02TAP 3.12 / RAP Export Pipelines (per regulator schema)P0US-CDR-007..011
EP-CDR-03Daily Signed-File Drop to ATRA SFTP/APIP0US-CDR-012..015
EP-CDR-04Adjustment Records (corrections, voids) without mutating originalsP0US-CDR-016..018

6.6 cbc-bridge-service (EP-CBC-*)

Epic IDTitlePriorityStories
EP-CBC-013GPP TS 23.041 Cell-Broadcast Adapter to MNO RANP0US-CBC-001..006
EP-CBC-02Government PKI Signature Verification on Broadcast RequestsP0US-CBC-007..010
EP-CBC-03Multi-Language Broadcast (Pashto/Dari/Arabic/English) and Geographic TargetingP1US-CBC-011..014
EP-CBC-04Broadcast Drill Mode + Public Test ChannelP2US-CBC-015..017

6.7 channel-router-service (EP-CHAN-*)

Epic IDTitlePriorityStories
EP-CHAN-01Multi-Channel Fallback Engine (SMS → WhatsApp BSP → Voice OTP → email) per Recipient ProfileP0US-CHAN-001..008
EP-CHAN-02OTT Provider Adapters (WhatsApp Cloud API, Telegram Bot, Viber)P1US-CHAN-009..014
EP-CHAN-03Inbound MO Routing to Tenant Webhook (2-way SMS)P1US-CHAN-015..018
EP-CHAN-04Conversational Session Manager (sticky alpha-ID ↔ MSISDN ↔ tenant correlation)P1US-CHAN-019..023

6.8 fraud-intel-service (EP-FRAUD-*)

Epic IDTitlePriorityStories
EP-FRAUD-01AIT (Artificially Inflated Traffic) Detection — graph + MLP0US-FRAUD-001..006
EP-FRAUD-02SIM-Box / Grey-Route Detection on Inbound MO PatternsP0US-FRAUD-007..011
EP-FRAUD-03OTP Harvesting & OTP-Grinding DetectionP0US-FRAUD-012..015
EP-FRAUD-04Fraud Feed (MISP-compatible) Export and ImportP1US-FRAUD-016..019

6.9 regulator-portal-service (EP-REG-*)

Epic IDTitlePriorityStories
EP-REG-01ATRA-Facing Portal: Reports, License Artifacts, LI Requests, Complaint IngestP0US-REG-001..008
EP-REG-02SIEM Forwarding (Splunk/ELK/QRadar) for Security & Compliance EventsP0US-REG-009..012
EP-REG-03Periodic Compliance Attestations (ISO 27001, SOC 2 Type II evidence collection)P1US-REG-013..016

6.10 developer-portal-service (EP-DEV-*)

Epic IDTitlePriorityStories
EP-DEV-01Public Developer Portal (docs, sandbox, key self-serve, consumption analytics)P1US-DEV-001..008
EP-DEV-02Official SDKs: Node, Python, Java, .NET, Go, PHPP1US-DEV-009..014
EP-DEV-03Mobile SDKs: Android, iOS, FlutterP2US-DEV-015..019
EP-DEV-04Postman Collection, OpenAPI Pre-Baked, Code Snippet GeneratorP2US-DEV-020..023
EP-DEV-05Verify API (Twilio Verify equivalent — managed OTP across SMS/Voice/WhatsApp)P1US-DEV-024..029

6.11 campaign-service (EP-CAMP-*)

Epic IDTitlePriorityStories
EP-CAMP-01Campaign Builder (segments, schedule, throttle, A/B, kill-switch)P1US-CAMP-001..008
EP-CAMP-02Template Catalog with Merge Fields, Conditional Content, Multi-LanguageP1US-CAMP-009..014
EP-CAMP-03Approved-Template Workflow (paired with EP-CE-13 for trusted-tenant fast-path)P1US-CAMP-015..018
EP-CAMP-04Campaign Reporting (deliverability, spend, opt-outs, conversion)P2US-CAMP-019..022
Epic IDTitlePriorityStories
EP-CONS-01National DND Registry Sync + Per-Tenant Consent RecordsP0US-CONS-001..006
EP-CONS-02STOP-Keyword Handling (inbound MO → consent revocation propagation)P0US-CONS-007..011
EP-CONS-03Consent Audit Log (regulator-defensible, append-only, ≥ 7 years)P0US-CONS-012..015
EP-CONS-04Consent API for Tenants (CheckConsent, RecordConsent, RevokeConsent)P1US-CONS-016..019

7. Service Epic Index — consolidated

ServiceExisting EpicsNew Epics (v1.2)Source
api-gatewayEP-KONG-01 – EP-KONG-05EP-KONG-06, EP-KONG-07_report.md
sms-orchestratorEP-ORCH-01 – EP-ORCH-05EP-ORCH-06, EP-ORCH-07_report.md
auth-serviceEP-AUTH-01 – EP-AUTH-05EP-AUTH-06, EP-AUTH-07, EP-AUTH-08_report.md
routing-engineEP-RE-01 – EP-RE-04EP-RE-05, EP-RE-06, EP-RE-07_report.md
smpp-connectorEP-SC-01 – EP-SC-04EP-SC-05 – EP-SC-09_report.md
dlr-processorEP-DLR-01 – EP-DLR-05EP-DLR-06, EP-DLR-07, EP-DLR-08_report.md
webhook-dispatcherEP-HOOK-01 – EP-HOOK-04EP-HOOK-05 – EP-HOOK-08_report.md
billing-serviceEP-BILL-01 – EP-BILL-05EP-BILL-06 – EP-BILL-09_report.md
notification-serviceEP-NOTIF-01 – EP-NOTIF-06EP-NOTIF-07_report.md
operator-management-serviceEP-OPS-01EP-OPS-02, EP-OPS-03, EP-OPS-04_report.md
analytics-serviceEP-ANLYT-01EP-ANLYT-02, EP-ANLYT-03_report.md
customer-portalEP-CUST-01 – EP-CUST-06EP-CUST-07, EP-CUST-08, EP-CUST-09_report.md
admin-dashboardEP-ADMDASH-01 – EP-ADMDASH-08EP-ADMDASH-09, EP-ADMDASH-10, EP-ADMDASH-11_report.md
compliance-engineEP-CE-01 – EP-CE-10EP-CE-11, EP-CE-12, EP-CE-13_report.md
NEW — sms-firewall-serviceEP-FW-01 – EP-FW-04(to be scaffolded)
NEW — number-intelligence-serviceEP-NI-01 – EP-NI-04(to be scaffolded)
NEW — sender-id-registry-serviceEP-SID-01 – EP-SID-04(to be scaffolded)
NEW — numbering-serviceEP-NUM-01 – EP-NUM-03(to be scaffolded)
NEW — cdr-mediation-serviceEP-CDR-01 – EP-CDR-04(to be scaffolded)
NEW — cbc-bridge-serviceEP-CBC-01 – EP-CBC-04(to be scaffolded)
NEW — channel-router-serviceEP-CHAN-01 – EP-CHAN-04(to be scaffolded)
NEW — fraud-intel-serviceEP-FRAUD-01 – EP-FRAUD-04(to be scaffolded)
NEW — regulator-portal-serviceEP-REG-01 – EP-REG-03(to be scaffolded)
NEW — developer-portal-serviceEP-DEV-01 – EP-DEV-05(to be scaffolded)
NEW — campaign-serviceEP-CAMP-01 – EP-CAMP-04(to be scaffolded)
NEW — consent-ledger-serviceEP-CONS-01 – EP-CONS-04(to be scaffolded)

8. Dependency Map (national-backbone delivery)


SliceSprint windowGoalHeadline epics
S1 — Hygienenext sprintReconcile contradictions; lock the baselineCritique punch list 4–6 (CE-* IDs, Firebase fix, scope header), US-PLAT-NB-005
S2 — National Resilience FoundationsS2–S5Multi-region, mesh, HSM, supply-chainEP-PLAT-NB-01..05, EP-PLAT-NB-11
S3 — Telecom Data-Plane UpliftS3–S6Per-MNO connector pools, priority lanes, edge defenceEP-SC-05..09, EP-PLAT-NB-06, EP-KONG-06..07
S4 — Trust & Safety National TierS4–S8Firewall + fraud + sender-ID + consentsms-firewall, fraud-intel, sender-id-registry, consent-ledger, EP-CE-11..13
S5 — Regulator + CDR + Number IntelligenceS5–S9Sovereignty + CDR + HLR/MNPcdr-mediation, regulator-portal, number-intelligence, numbering, EP-PLAT-NB-07
S6 — Multi-Channel + Verify + EmergencyS7–S11Channel router, voice/WhatsApp/RCS, CBCchannel-router, cbc-bridge, EP-DEV-05
S7 — Operational ExcellenceS6–S10 (parallel)NFRs, NOC, chaos, status, certsEP-PLAT-NB-09, EP-PLAT-NB-12..15
S8 — Product SurfaceS9–S14Developer portal, SDKs, campaign, customer success, sub-orgsdeveloper-portal, campaign, EP-CUST-07..09, EP-AUTH-06

10. Jira Import

The companion file 07-epics-and-user-stories.JIRA_IMPORT.csv contains every new or updated epic and story introduced by v1.2 in the same column format used by services/compliance-engine/JIRA_IMPORT.csv:

Issue Type, Issue Key, Summary, Description, Priority, Story Points, Labels, Components, Epic Name, Epic Link, Acceptance Criteria

Existing epics and stories already in per-service _report.md files are not re-exported in this CSV — their authoritative source is the service report. A platform-wide consolidated CSV (lifting every existing service epic) is tracked separately as US-PLAT-NB-005 under EP-PLAT-NB-15.

Import order (dependency-aware):

  1. EP-PLAT-NB-04 (HSM) → EP-PLAT-NB-05 (Mesh) → EP-PLAT-NB-11 (Supply chain).
  2. EP-PLAT-NB-01..03 (Multi-region + node pools + NATS).
  3. EP-PLAT-NB-09 (NFRs) and EP-PLAT-NB-10 (Threat models) — can run in parallel.
  4. EP-SC-05..09 (per-MNO pools), EP-KONG-06..07 (edge defence), EP-PLAT-NB-06 (priority lanes).
  5. EP-FW-*, EP-FRAUD-*, EP-SID-*, EP-CONS-*, EP-CE-11..13.
  6. EP-NI-*, EP-NUM-*, EP-CDR-*, EP-REG-*, EP-PLAT-NB-07.
  7. EP-CHAN-*, EP-CBC-*, EP-DEV-*, EP-CAMP-*.
  8. EP-PLAT-NB-12..15 (NOC, chaos, status, risk + certs).
  9. EP-CUST-07..09, EP-ADMDASH-09..11, EP-BILL-06..09, EP-AUTH-06..08, EP-OPS-02..04, EP-ANLYT-02..03, EP-NOTIF-07, EP-DLR-06..08, EP-HOOK-05..08, EP-ORCH-06..07, EP-RE-05..07.

11. Cross-Cutting National-Backbone Epics — Detail

Each epic below contains its goal, scope, success criteria, dependencies, and the user-story IDs imported by the Jira CSV. The full text of every story is in the CSV; this document captures the strategic envelope.

EP-PLAT-NB-01 · Multi-Region Active-Active Deployment (kbl/mzr + dxb DR)

Goal: Two Afghan regions (Kabul primary, Mazar secondary) running active-active with a sovereign-allowed cold-DR copy in Dubai. Region failover is automatic for read paths (GeoDNS) and manual-gated for writes (idempotency safety).

Scope: GeoDNS, region-aware Cloudflare config, K8s clusters per region, Postgres Patroni clusters with logical replication for control-plane data, region-local hot tables, NATS super-cluster (paired with EP-PLAT-NB-03), object-storage cross-mirror, sealed cold archive in dxb, GameDay-tested cutover.

Success criteria: RTO ≤ 5 min for OTP class on regional failover; RPO ≤ 5 s for OTP/transactional; quarterly failover GameDay passes; no split-brain on Idempotency-Keys.

Stories: US-PLAT-NB-001..010.

EP-PLAT-NB-02 · Control-Plane / Data-Plane Node-Pool Separation

Goal: Workloads with different SLAs run on different node pools to prevent noisy-neighbour incidents and to permit MNO IP-whitelisting on a stable egress.

Scope: Define np-edge, np-ctrl, np-data, np-state, np-obs, np-identity node pools with taints/tolerations, dedicated egress IP blocks for np-data, NetworkPolicies per pool.

Stories: US-PLAT-NB-011..014.

EP-PLAT-NB-03 · NATS JetStream Multi-Cluster

Goal: Super-cluster across kbl/mzr with stream mirrors for audit/CDR/regulator topics; leaf node in dxb for audit-only mirrors.

Stories: US-PLAT-NB-015..018.

EP-PLAT-NB-04 · HSM-Backed Key Custody & Envelope Encryption

Goal: Move root keys for JWT signing, SAML SP, webhook HMAC, SMS-content envelope, and DB-TDE master into HSM (PKCS#11, FIPS 140-2 L3). Vault retains lifecycle and transit; HSM holds master.

Stories: US-PLAT-NB-020..026.

EP-PLAT-NB-05 · Service Mesh + SPIFFE/SPIRE Workload Identities

Goal: Replace implicit east-west trust with mesh mTLS; every workload gets a SPIRE-issued SVID with 1-hour rotation; AuthorizationPolicies are deny-by-default.

Stories: US-PLAT-NB-027..030.

EP-PLAT-NB-06 · National Priority Lanes (P0/P1/P2/P3/P4) End-to-End

Goal: Lane-aware routing from inbound submit through MNO dispatch, with reserved TPS budgets, dedicated NATS subjects, lane-specific compliance treatment, and lane-specific SLAs.

Stories: US-PLAT-NB-031..036. Pairs with EP-ORCH-06 and EP-RE-05.

EP-PLAT-NB-07 · CDR Pipeline Separate from Billing Events

Goal: Append-only signed CDRs in object storage, ClickHouse for analytics, daily TAP 3.12/RAP roll-up, regulator export.

Stories: US-PLAT-NB-037..042. Pairs with cdr-mediation-service epics EP-CDR-01..04.

EP-PLAT-NB-08 · Trusted-Tenant Fast-Path

Goal: Pre-vetted tenants (banks, ministries, healthcare) with content-fingerprint-signed templates can skip blocking compliance evaluation; compliance runs in shadow + sample mode.

Stories: US-PLAT-NB-043..047. Pairs with EP-CE-13, EP-ORCH-07, EP-CAMP-03.

EP-PLAT-NB-09 · NFR/SLA Catalog & Error-Budget Policy

Goal: Author docs/15-nfr-sla-catalog.md codifying quantitative NFRs from ADR-0004 §9; bind every NFR to a Prometheus alert; publish per-service error budgets and burn-rate alerts.

Stories: US-PLAT-NB-048..052.

EP-PLAT-NB-10 · STRIDE Threat Models per Service

Stories: US-PLAT-NB-053..056.

EP-PLAT-NB-11 · Supply-Chain Security

Goal: SBOM (CycloneDX) per build, Sigstore/Cosign image signing, Kyverno admission policy, CIS-Benchmarked nodes, Pod Security Standards restricted, gitleaks/trufflehog as CI required gates.

Stories: US-PLAT-NB-057..060.

EP-PLAT-NB-12 · NOC Dashboards, Runbook Catalogue, On-Call Tooling

Goal: Single-pane-of-glass NOC dashboard, runbook catalogue per service, PagerDuty/Opsgenie integration with tiered escalation.

Stories: US-PLAT-NB-061..065.

EP-PLAT-NB-13 · Chaos Engineering Programme + GameDays

Stories: US-PLAT-NB-066..069.

EP-PLAT-NB-14 · Public Status Page + Per-Route SLO Dashboard

Stories: US-PLAT-NB-070..072.

EP-PLAT-NB-15 · Risk Register, Compliance Certifications, ID Reconciliation

Goal: Populate docs/11-risks-and-tradeoffs.md and per-service SERVICE_RISK_REGISTER.md; roadmap to ISO 27001, ISO 27017/27018, SOC 2 Type II, GSMA AA.18; reconcile compliance-engine CE-E* IDs to canonical EP-CE-*.

Stories: US-PLAT-NB-073..077.


12. Open Points

IDQuestionOwnerStatus
OP-PLAT-001Should sms.events.status events be published transactionally (outbox pattern) to guarantee at-least-once delivery to billing and webhooks?ArchitectureOpen
OP-PLAT-002Retention policy for orch.sms_messages partitions — auto-drop after 90 days or archive to cold storage?Data EngineeringOpen
OP-PLAT-003Multi-region deployment: active-active vs. active-passive for SMPP operator connections?ArchitectureResolved by ADR-0004 — region-pinned MNO bind affinity; failover is region-of-bind, not concurrent multi-region binds to the same MNO peer.
OP-PLAT-004Should validation failures go to DLQ (sms.outbound.deadletter) or a separate poison-pill queue?Platform EngineeringOpen
OP-PLAT-005Currency strategy for billing-service — AFN-only at GA, USD post-GA, or multi-currency from day one?Product + FinanceOpen (tracked as design input for EP-BILL-06)
OP-PLAT-006DPIA template for cross-tenant LLM compliance fallback — who authors?Security + LegalOpen (tracked as US-CE-051)
OP-PLAT-007ATRA CDR schema confirmation — do we own the schema or do they prescribe one?Regulator LiaisonOpen (blocks EP-CDR-02)
OP-PLAT-008MNO IP whitelisting model — single egress IP per region or per-MNO per-region?SRE + MNO PartnershipsOpen (input for EP-PLAT-NB-02 and EP-SC-08)
OP-PLAT-009Voice OTP MNO terms — which MNOs support termination for our short-code voice gateway?Product + PartnershipsOpen (input for EP-DEV-05, EP-CHAN-01)
OP-PLAT-010Cell-broadcast government MoU — required precondition before cbc-bridge-service can be built.Legal + GovernmentOpen (blocks EP-CBC-*)

Index complete. For any service, see its _report.md. For all new and updated items, see the companion Jira CSV.