Skip to content

History / Service Layer Architecture

Revisions

  • Explain why the service-layer + tenancy-first API made Phase-3 module scoping nearly free Adds a "Rolling isolation to the other modules (Phase 3)" section to the isolation page (per-module recipe + why the earlier refactors paid off + the honest caveat about perimeter reads), and cross-links it from the service-layer architecture page's company-scope section + Related.

    @edmozley edmozley committed Jul 5, 2026
  • Service-Layer-Architecture: 2 new harness traps (data-wrapper, positional id normalisation) + Watch-out-for #14 (don't add guards the API lacked)

    @edmozley edmozley committed Jul 5, 2026
  • Service-Layer: cmdb (#729) done + 3 new traps (status codes, catch-Exception, companyScope) + normalise-both-shapes pattern

    @edmozley edmozley committed Jul 5, 2026
  • Service-Layer: knowledge (#726) done + opcache/stash harness trap

    @edmozley edmozley committed Jul 5, 2026
  • Service-Layer-Architecture: rename 'knotty issues' -> 'Watch out for...'; add learnings from modules 2-6 (id-collision technique, scoping, UTC exception, side effects)

    @edmozley edmozley committed Jul 5, 2026
  • Service-Layer-Architecture: explain why only writes are refactored

    @edmozley edmozley committed Jul 5, 2026
  • Add Service-Layer architecture + progress pages - Service-Layer-Architecture: explainer (problem, ports & adapters, the session-vs-API-key ActorContext insight, the 3 service rules, worked example, all 8 knotty issues incl. pre-existing UI/API divergence, UTC/timezones, error ordering, byte-identical proof, Exception::$code collision, delete idempotency, response-shape fidelity, parity-harness traps) + a "how to build a new dual UI+API feature correctly" guide. - Service-Layer-Progress: per-module rollout tracker, honest line-savings picture, convergence log, deferred display-layer UTC fix. - Linked both from _Sidebar (under Architecture) and cross-linked from Architecture.md's API Pattern section.

    @edmozley edmozley committed Jul 5, 2026