Skip to main content

Retired Peak Runtime Ownership

peak-api and the standalone PeakPro portal are retired. This page is the current ownership and verification reference that prevents those runtime surfaces from returning; it is not a migration plan or a compatibility promise.

Current runtime boundary

The following rules are enforced by source guards and the owner catalog:

  • apps/microservices/peak-api must not exist as a runnable service, image, OpenAPI specification, generated SDK, deployment target, or public route host.
  • The standalone PeakPro portal must not return. Shared portal code belongs in apps/websites/portals/shared; user-facing product surfaces belong in the retail or support portal.
  • Legacy Peak tenant/public aliases are not preserved. Current clients call the destination service directly.
  • Historical Peak/PeakPro names are allowed only where a migration catalog, evidence validator, guard test, or persisted compatibility field requires them.
  • The current apps/microservices/ai-api service is a separate service and is not permission to restore peak-api, its old aliases, or its former mixed-domain ownership.

The executable governance map is tools/peak-rearchitecture/src/main/java/com/myriad/peak_rearchitecture/migration/PeakRearchitectureCatalog.kt. It is not a runtime router. New work must follow the current service that owns the route and data, not add a branch to the catalog.

Current owner map

Domain boundaryCurrent ownerNotes
Account administration and account-scoped workflow surfacesmanagement-apiIncludes the native account/control-plane routes and support-facing orchestration.
Account product and entitlement authorityauth, orchestrated where needed by management-apiDo not restore Peak-owned entitlement writes or usage routes.
Canonical POS catalog, inventory, customer, store, tax, and checkout-adjacent statemerchant-apiPeak-specific historical rows may remain an evidence/backfill overlay; they are not a reason to restore routes.
Private reporting, export, integration, and consolidation executiontx-bundler, behind service facadestx-bundler remains a private backend boundary rather than a public replacement for Peak routes.
Current AI runtimeai-apiOwns only its current API contract. It does not inherit retired Peak non-AI domains or aliases.
Gateway processor, merchant/location, card, settlement, and tax-engine effectsGateway, through the owning service's SDK adapterMonorepo services retain authorization and DTO ownership.

The catalog records table-family classifications and closure evidence for the retired system. Its PhysicalMigrationPlan fields describe evidence and rollback expectations for remaining storage cleanup; they do not mean that peak-api is still serving traffic.

When ownership appears ambiguous, inspect the current controller and repository first, then update the catalog and this page in the same reviewed change if the authoritative boundary moved. Do not recreate a compatibility proxy while resolving the disagreement.

Compatibility and data closure

Route retirement and physical data closure are separate facts:

  1. Source guards prove that the retired service, portal, clients, deployment entries, and forbidden route aliases are absent.
  2. The catalog identifies the owner and storage role for each historical table family.
  3. Real dual-read, backfill, and traffic-window artifacts prove that physical closure is safe.

Required evidence is stored outside the prose under artifacts/peak-rearchitecture/<slice>/:

  • dual-read-parity.json
  • backfill-ledger.json
  • compatibility-telemetry-window.json

scripts/peak_rearchitecture_evidence_gate.py derives the expected artifact set from the catalog and validates the artifact schema. Missing evidence is BLOCKED, not passed and not a reason to fabricate a placeholder. The completion audit's --allow-blocked option permits source-only work to exit successfully when the only outstanding condition is missing live closure evidence; it does not declare the migration complete.

Do not drop, rewrite, or backfill historical tables from this page. Data movement requires the owning service's reviewed runbook, an observed parity result, an idempotent ledger, a rollback boundary, and explicit authorization for the target environment.

Scope locks

These phrases are also checked by the completion audit and must remain exact:

  • #1504 remains excluded from this re-architecture gate until it has a current owner and issue-specific evidence.
  • Tap to Pay remains excluded from this re-architecture gate; Android/payment validation owns that proof separately.
  • Feature Mode is consistently implemented as vertical.
  • Feature Level is consistently implemented as package/capability level.

PeakRearchitectureCatalog.excludedIssues is the machine-readable excluded set. A future issue may leave the set only with an assigned destination owner and its own verification evidence.

Verification

Run the non-mutating source and evidence checks from the repository root:

python3 scripts/check_retired_peak_surfaces.py
python3 scripts/check_former_peakpro_naming.py
python3 scripts/peak_rearchitecture_completion_audit.py --allow-blocked

Interpret the results as follows:

ResultMeaning
PASS source checksNo forbidden retired runtime or naming surface was found in the scanned source.
BLOCKED closure evidenceRequired real migration evidence is absent; source retirement may still be valid.
FAILA retired surface returned, a required scope lock is missing, or an evidence artifact is malformed. Fix the owning source/evidence problem; do not weaken the guard.

The direct guard implementations are scripts/check_retired_peak_surfaces.py, scripts/check_former_peakpro_naming.py, scripts/peak_rearchitecture_evidence_gate.py, and scripts/peak_rearchitecture_completion_audit.py.