Skip to content

ADR-0015: Mutating RPCs are domain commands

  • Status: Accepted
  • Date: 2026-09-10

Context

Generic CRUD allows clients to bypass domain rules and makes business behavior client-dependent.

Decision

Renderer mutations express intent (StartTask, ApproveTask) rather than generic row patches.

Consequences

Queries may be resource/view oriented. Core is authority for transitions.

Change rule

If implementation evidence proves this wrong, update the canonical architecture/product document first and then supersede/amend this ADR. The ADR is not allowed to keep current docs stale.

Forge is local-first. The docs are part of the product engineering system.