Skip to guide

Part 2 · Partition and contracts

Assign state ownership and boundary contracts

Partition decisions and mutable state into precise owners, then define acceptance, lifetime, ordering, backpressure, error, reset, and cancellation at every interface.

Learn to expose missing assumptions early, budget throughput and buffering with units, choose structures deliberately, and preserve bidirectional traceability through RTL and verification.

Updated July 20262 connected chaptersInteractive labs + worked examples
03

Partition by ownership

Place state where one block can make it precise.

Partitioning is not drawing boxes around functions. It assigns every mutation, wait, retry, and completion to one owner while controlling shared critical paths.
CH0descriptorepochprogress
CH1descriptorepochprogress
CH2descriptorepochprogress
CH3descriptorepochprogress
eligibilityScheduler + credit gateBurst formationResponse ledger
256-bit downstream boundaryacceptance · ordering · error · backpressure
Block ownership ledger
StateAllocateMutateRetireObservable evidence
Descriptor contextChannel frontChannel frontChannel frontaccepted / active / completed counters
Fabric creditResponse ledgerIssue + responseResponse ledgeroutstanding high-water mark
Burst progressBurst engineBurst engineResponse ledgerchannel, descriptor, burst, beat identity
First errorResponse ledgerwrite-once until retireChannel frontcause, address, bytes committed, epoch
04

Interface and state contracts

Define acceptance, lifetime, and cancellation together.

Signal direction is not an interface contract. Every boundary also needs a sampling event, stability rule, ownership transfer, ordering scope, error semantics, and reset behavior.
Admission

Descriptor request

Accept
req_valid && req_ready
Stable while blocked
address, length, channel, flags
Transfer
caller → channel front
Reject
alignment, range, or disabled channel
Transport

Fabric beat

Accept
valid && ready at the fabric edge
Stable while blocked
payload, byte enables, ID, LAST
Order
as defined for the selected ID and channel
Capacity
one credit per accepted outstanding unit
Retirement

Channel completion

Emit
after every accepted burst reaches terminal state
Report
status, bytes committed, first error
Reuse
only after completion acceptance
Reset
drain, cancel, or reject by declared epoch
Conservation invariantaccepted descriptors = completed descriptors + active descriptors

Refine the same conservation equation for bursts, beats, credits, and response IDs. After quiescence, every active count must reach zero.

Keep practicing

Move from recognition to explanation.

These links open the existing practice bank without publishing protected solutions on this guide.

Continue the system

Connect the adjacent layer.