Skip to main content

SERVICE_READINESS — lock-integration-service

Bundle: SERVICE_OVERVIEW · SECURITY_MODEL · OBSERVABILITY · TESTING_STRATEGY · FAILURE_MODES · DEPLOYMENT_TOPOLOGY

Cross-cutting: docs/standards/DEFINITION_OF_DONE, docs/standards/SERVICE_TEMPLATE — SERVICE_READINESS.

A go/no-go scorecard for shipping any version of lock-integration-service to production. Reviewed at the release readiness review chaired by the platform lead.

1. Tier definitions​

TierMeaning
MVP-InternalBeta with internal hotel pilot (≤ 1 property), full feature set behind a feature flag, vendor sandboxes only
MVP-GAFirst paying tenant in production, single region, single vendor (TTLock or Salto)
GA-Multi-VendorTwo or more vendor adapters in production for the same tenant
GA-OfflineElectron offline-issuance path enabled in production
GA-Multi-RegionEU-residency tenants live

2. Readiness checklist​

DomainItemMVP-InternalMVP-GAGA-Multi-VendorGA-OfflineGA-Multi-Region
FunctionalLockPort implemented, all canonical operations✅✅✅✅✅
At least one vendor adapter passing contract suite✅✅≥ 2 ✅≥ 2 ✅≥ 2 ✅
Issue saga (reservation.confirmed → key) end-to-end✅✅✅✅✅
Revoke saga (checkout/cancel) end-to-end✅✅✅✅✅
Update saga (date change) end-to-end—✅✅✅✅
Master-key shift saga—✅✅✅✅
Vendor webhook ingress (signed)✅✅✅✅✅
Offline issuance via Electron + reconciliation———✅✅
QualityCoverage ≥ targets (TESTING_STRATEGY §10)partial✅✅✅✅
Mutation score ≥ targets on domain + sagas—✅✅✅✅
Vendor sandbox conformance green ≥ 3 nightly✅✅✅✅✅
k6 load baseline within 10%—✅✅✅✅
HIL Generic Wiegand checklist within 14d—(if used)(if used)✅✅
SecurityVendor secrets in Secret Manager, per-tenant CMEK✅✅✅✅✅
RLS enforced on all tables, audited✅✅✅✅✅
Webhook signature verification per vendor✅✅✅✅✅
lock_audit immutability + Merkle anchoringpartial✅✅✅✅
Logging redaction tests pass; secret-scan CI clean✅✅✅✅✅
Penetration test report — no Highs unaddressed—✅✅✅✅
Offline issuance signing key in KMS, rotation policy active———✅✅
Device binding + CRL operational———✅✅
ReliabilityAll saga retries + circuit breakers configured✅✅✅✅✅
All failure modes from FAILURE_MODES covered by testspartial✅✅✅✅
Disaster-recovery drill executed (Cloud SQL restore from PITR)—✅✅✅✅
ObservabilityAll SLO recording rules deployed✅✅✅✅✅
Page-the-on-call alerts wired with runbook links✅✅✅✅✅
SRE dashboards + per-tenant + per-property dashboards livepartial✅✅✅✅
Synthetic vendor checks running per region✅✅✅✅✅
OperabilityRunbooks (FAILURE_MODES §1) merged in runbooks/lock-integration/partial✅✅✅✅
On-call rotation defined, primary + secondary—✅✅✅✅
Customer-facing status page integration—✅✅✅✅
Vendor escalation contacts documented per vendor—✅✅✅✅
ComplianceData classification mapping reviewed by privacy✅✅✅✅✅
Subject-deletion path implemented (pseudonymization)—✅✅✅✅
Data residency routing implemented and tested————✅
DocumentationAll 17 service docs current (SERVICE_TEMPLATE)✅✅✅✅✅
OpenAPI spec published, lint clean✅✅✅✅✅
Event schemas in registry; consumer compatibility checked✅✅✅✅✅
ADR-0004 still reflects implementation✅✅✅✅✅

3. Sign-off​

Each tier requires written sign-off in the release ticket from:

  • Service owner (lock domain lead)
  • Platform SRE (alerts + dashboards + DR drill)
  • Security lead (secret handling, audit, pen-test)
  • Product (feature scope, customer comms)
  • Tenant operations (for tenant-scoped tier promotions)

4. Exit criteria for each tier​

The promotion path is sequential. Skipping a tier requires a written exception approved by the platform lead.

Promote from → toTrigger condition
MVP-Internal → MVP-GA30 days in pilot with no P1 incidents; all checklist items ✅
MVP-GA → GA-Multi-VendorSecond vendor in production with > 100 issuances and stable health for 14d
GA-Multi-Vendor → GA-OfflineOffline reconciliation tested with > 50 real provisional credentials over 30d
→ GA-Multi-RegionResidency routing tested with at least one EU-tagged tenant in staging for 14d

5. Cross-references​