Skip to main content
The full architectural decision record is published as ADR-0005. This page summarises it for developers integrating with the rights plane.

The lifecycle

Why bounded

Rights are a bounded context because:
  • They have their own invariants — a derived right cannot exceed the scope of its parent; a suspended right cannot be exercised; an expired right is non-recoverable.
  • They have their own language — basis, offer, counter, challenge — that doesn’t appear elsewhere in the platform.
  • They have their own lifecycle — most other entities are CRUD; rights are state machines.
Mixing rights logic into the runtime or settlement layers would produce the kind of tangle that’s expensive to unwind under regulatory scrutiny.

Where this surfaces in the API

Lifecycle transitions also fan out as signed webhooks — see Webhooks. The full surface is in the API reference.