Skip to content

ADR-0002. Resolve SVC-00110 service-code collision with outreach

FieldValue
StatusAccepted
Date2026-04-21
Deciderslicensing-team, platform-team
Supersedes

Context

  • Licensing ships with APP_ENV_APPLICATION_CODE = SVC-00110-LICENSING (see app-info.json description and application.ts).
  • @nx/outreach already owns the SVC-00110 prefix — the numeric portion collides.
  • SVC-00110-LICENSING is not yet registered in core's ServiceCodes enum.
  • Service codes feed log correlation, Kafka client IDs, and operational dashboards; a collision risks cross-attributing telemetry between two services.

Decision

Licensing is reassigned to SVC-00140-LICENSING and registered in core's ServiceCodes enum. Outreach keeps SVC-00110. The originally-floated SVC-00120 was taken instead by helpdesk (which already declared SVC-00120-HELPDESK in its app-info.json), so licensing landed on the next free slot, SVC-00140 (SVC-00130 belongs to taxation).

Consequences

ProsCons
Removes telemetry cross-attribution riskRequires touching app-info.json + core ServiceCodes + env in all environments
Single source of truth for the code (the enum)Any dashboards / alerts keyed on SVC-00110-LICENSING must be updated

Alternatives Considered

OptionProsConsWhy rejected
Keep SVC-00110, renumber outreachLicensing unchangedOutreach is older/more established; more downstream churnHigher blast radius
Leave both on SVC-00110No workPermanent telemetry ambiguityDefeats the purpose of a service code
Append a suffix only (SVC-00110-LICENSING vs SVC-00110-OUTREACH)Minimal changeNumeric prefix still collides in code-prefix groupingsDoesn't fix the root collision

References

  • licensing/src/resources/app-info.jsonSVC-00140-LICENSING
  • licensing/AGENTS.md — Quick Reference collision warning
  • core/src/common/service-codes.tsServiceCodes enum (licensing now registered as SVC-00140-LICENSING)

Proprietary and Confidential. Unauthorized copying, distribution, or use of this software is strictly prohibited.