Customer Adoption Roadmap¶
Audience: Customer's PM, sponsor, integration lead. Read with
responsibilities.md(RACI per row) and../onboarding/day-one.md(the literal Phase-1 stack-up runbook). Goal: Commercial-narrative view of the rollout in six phases. Deliverables, risks, and ownership per side.Canonical operational sources of truth (this doc is the commercial summary; for execution detail go straight to the source): - Phase-by-phase operational plan →
../delivery/phased-rollout.md(eight phases, gates, acceptance criteria). - Risk register →../delivery/risks.md. - RACI →../delivery/stakeholders.md.
Timeline at a glance¶
| Phase | Name | Duration | Customer commitment |
|---|---|---|---|
| 0 | Discovery | 1–2 weeks | Sponsor + tech lead part-time |
| 1 | Local stack-up | 1 day | One developer, one machine |
| 2 | Customisations | 2–4 weeks | 1–2 developers + designer |
| 3 | Compliance / KYC / licensing | 4–12 weeks | Legal + compliance lead, jurisdiction-dependent |
| 4 | Pilot (closed beta) | 2 weeks | Ops + support + small player cohort |
| 5 | Launch | 1 week | Full team on-call |
End-to-end best case: ~10 weeks from signature to launch (no licence delay). End-to-end realistic: ~16–20 weeks (typical jurisdiction licensing).
Phase 0 — Discovery (1–2 weeks)¶
Deliverables¶
- Customer reads the Business track end to end.
- Joint review of
key-features.mdwith red/yellow/green flags against the customer's must-haves. - Joint review of
integration-options.md— pick payment provider(s), KYC provider, social-auth strategy. - Gap analysis: features customer needs that Evospin doesn't ship → scoped change requests.
nfr-sla.mdwalkthrough — agree the proposed SLA tier (99.5 % vs 99.9 %) and capacity envelope.- Signed-off scope document.
Risks¶
- Hidden requirements: jurisdiction-specific gameplay rules, currency support, or regulator-mandated audit fields surface late. Mitigation: explicit checklist in the gap-analysis worksheet.
- Mismatch on integrations: customer expects an integration that's
scaffolded(e.g. EvoGames slots, Steam OAuth) to be production-grade. Mitigation: every row inintegration-options.mdhas an explicit maturity marker — review the maturity column in this phase. - SLA expectations: customer wants 99.99 %. Mitigation: surface the deployment-topology cost in this phase, not after contract.
Customer responsibilities¶
- Provide must-have feature list (with priorities).
- Identify legal jurisdiction and licensing posture.
- Nominate technical lead, sponsor, ops lead.
ebit-team responsibilities¶
- Lead doc walkthroughs.
- Produce the gap-analysis worksheet.
- Quote any out-of-box change requests.
Phase 1 — Local stack-up (1 day)¶
Deliverables¶
- Customer's lead developer has the full platform running on their machine: ebit-api (port 4000), ebit-rt (4001), ebit-fe (3000), ebit-admin-fe (3001), Postgres, both Redis instances, RabbitMQ, and the full observability stack (Jaeger, Prometheus, Loki, Grafana).
- A real bet placed via
ebit-feproduces a Jaeger trace (../e2e-trace-demo.md). - Admin sign-in works.
Inputs / runbooks¶
../onboarding/day-one.mdis the literal step-by-step.../e2e-trace-demo.mdis the verification recipe.../runbooks/covers the most common day-1 stumbles (2FA, captcha, bcrypt, Loki gaps, npm permissions).
Risks¶
- Doppler access: customer can't authenticate to the dev secret store. Mitigation: plain
.envtemplate (.example.env) ships in each repo. - Hardware: < 8 GB RAM machine fails. Mitigation: documented in
../onboarding/day-one.md§1.
Customer responsibilities¶
- Provide a developer + workstation matching prereqs.
ebit-team responsibilities¶
- Pair-program through the runbook for the first developer.
- Stand up Doppler access (if applicable).
Phase 2 — Customisations (2–4 weeks)¶
Deliverables¶
Customer-facing, per integration-options.md:
- Brand: logo, palette, hero copy, locale set.
- Currency catalogue + display (FX feed configured).
- Payment provider keys (CCPayment, NowPayments, or both) wired and tested in sandbox.
- KYC: Sumsub keys + webhook URL configured.
- Captcha: GeeTest production keys (and reCAPTCHA fallback if used).
- Social auth: Google / Steam keys (if in scope) — note these are scaffolded; finishing the FE flow is in scope here.
- Game provider keys: PM8 / BGaming / Softswiss / etc. as agreed in Phase 0.
- Observability: collector exporter pointed at customer's chosen backend (Datadog / New Relic / self-host) — config-only swap.
Risks¶
- Scope creep: customer asks for new house games or new game providers mid-phase. Mitigation: every change request goes back to Phase 0 sign-off.
- Provider sandbox lag: payment / KYC / game providers don't issue sandbox credentials inside this window. Mitigation: kick off paperwork with each external provider on day 1 of Phase 0, not Phase 2.
- Locale gaps: copy needs translation by a third party. Mitigation: ebit-team writes EN copy; customer / their translator owns localisation.
Customer responsibilities¶
- Brand assets, copy, locale translations.
- Procure provider sandbox credentials (KYC, payments, game providers).
- UAT each customisation as it lands.
ebit-team responsibilities¶
- Apply customisations in a customer fork / branch.
- Wire each provider integration, run end-to-end test, document any operator runbook deltas.
- Hand over a working pre-prod build at the end of Phase 2.
Phase 3 — Compliance, KYC tier mapping, licensing (4–12 weeks, jurisdiction-dependent)¶
Deliverables¶
- Operating licence in target jurisdiction (or partnership / sub-licence agreement).
- Sumsub KYC tier mapping aligned to jurisdiction.
- Country allow / deny list configured (
apps/api/src/country/). - Responsible-gambling controls audited against jurisdiction requirements (self-exclusion, deposit / loss limits — see ⚠ TBD coverage notes in
key-features.md§3). - Privacy notice, ToS, data controller registration.
- Regulator filings, if any, submitted and acknowledged.
Risks¶
- Licence delay: regulator response times vary widely (4–12+ weeks). Mitigation: kicked off in parallel with Phase 0; do not block Phase 1–2 on it.
- Tier-mapping mismatch: jurisdiction requires a KYC depth Sumsub doesn't ship out-of-box. Mitigation: validated in Phase 0 gap analysis.
- Audit log gaps: regulator requires fields Evospin doesn't currently capture. Mitigation: adds a custom column to
bet,accounting, orkyctables — scoped change in Phase 2.
Customer responsibilities¶
- Own the licence application end-to-end.
- Engage regulator and lawyers.
- Contract Sumsub commercial relationship.
- Operate the responsible-gambling support workflow.
ebit-team responsibilities¶
- Provide audit-trail evidence (sample traces, log exports).
- Implement any jurisdiction-specific code changes scoped in Phase 0.
- Stay on call for technical questions from regulator's auditors.
Phase 4 — Pilot / closed beta (2 weeks)¶
Deliverables¶
- Production deployment: HA Postgres, HA Redis, ≥2 API replicas, sticky-session rt, observability stack pointed at production OTel backend.
- Closed cohort (1k–5k invited players) plays real money / sandboxed money depending on jurisdiction.
- Run a stepped-ramp performance test against the production deployment (
../performance-test-report.md§"How to fill this table"). - Incident runbook validated on at least one synthetic incident (queue stuck, login failing, missing trace).
- KPIs measured: bet success rate, payment success rate, p95 latency per endpoint class, error budget consumption.
Risks¶
- Capacity surprise: production hardware behaves differently from local stack-up. Mitigation: run
../performance-testing.mdprotocol on the prod hardware in Phase 4. - External provider rate limits: payment / KYC / game providers throttle at unexpected thresholds. Mitigation: synthetic load against sandbox in Phase 2 surfaces most of this.
- Player support volume: customer's support team is overwhelmed. Mitigation: closed-cohort sizing.
Customer responsibilities¶
- Run production environment (cloud, k8s / ECS, networking, secrets).
- Source and onboard pilot players.
- Operate first-line support.
ebit-team responsibilities¶
- Deploy artifacts, run perf test, investigate any breaches.
- Second-line support during pilot window.
- Hand over
../runbooks/and../handover/oncall-runbook.md(TBD — track ID #11).
Phase 5 — Launch (1 week)¶
Deliverables¶
- Public open. Marketing live. Player acquisition campaigns active.
- 24×7 on-call rota stood up (ebit-team for code-level issues, customer for ops).
- SLA dashboard published — tracks the
nfr-sla.mdtargets in real time on Grafana. - Post-launch retrospective scheduled at +14 days.
Risks¶
- Traffic spike: marketing succeeds harder than predicted. Mitigation: HPA / replica scaling configured in Phase 4; capacity headroom validated under stepped ramp.
- Compliance surprise: regulator asks for an audit log slice with zero notice. Mitigation: Loki + Jaeger retention configured in Phase 4; OTel exemplars give trace IDs per request.
Customer responsibilities¶
- Own the launch.
- Run the on-call rota.
- Pay for production infrastructure.
ebit-team responsibilities¶
- Be available for launch + hot-fix support.
- Document any launch-week findings into
../runbooks/.
Cross-links¶
responsibilities.md— RACI matrix, one row per deliverable in this roadmap.integration-options.md— what to choose in Phase 0 / 2.nfr-sla.md— what to validate in Phase 4.../onboarding/day-one.md— Phase 1 in literal step form.../performance-testing.md— Phase-4 perf-test methodology.../e2e-trace-demo.md— Phase-1 verification recipe.