You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
HardlyDifficult edited this page Jul 17, 2026
·
8 revisions
ADR 002: Stateful issuer aggregate
Status: Accepted
Decision
Represent the issuer's current OCF state with one CapTable aggregate holding object-ID to contract-ID
maps. Apply creates, edits, and deletes through one atomic UpdateCapTable choice while keeping the
individual OCF objects as contracts.
Consequences
callers get atomic multi-object updates and one discoverable current state;
issuer and system-operator roles remain explicit signatories;
the aggregate contract ID changes after every update;
generated maps and reference checks must remain aligned with OCF modules; and
callers order interdependent deletes and edits, while creates are dependency-tiered.
The current processing order is deletes, regular edits in caller order, then sorted creates, followed
by aggregate post-checks. Contract Architecture links the generator and implementing contracts.