Expand description
Addressed faults: what can go wrong that the world’s own data cannot express.
Predicates are AND-ed and order-independent, so a miss can name the single predicate that failed. No HTTP and no Redis: matching is decided from the fault and the request’s item addresses alone.
Structs§
- Fault
- An armed fault. Immutable: re-arming an id replaces the value and re-mints its
seq. - Fault
Problem - Fault
Spec - Flat
When - Item
Address - The address keys one request item carries, after the working-set load filled in what the wire did not.
- Lifetime
- Owner
Ref - Resolved
Owner - An owner turned into the keys the wire carries, resolved once at arm time: a fault whose meaning changed because the user linked in the meantime would be unassertable.
Enums§
- Effect
- Fault
Match - Predicate
- Stage
- When
Spec - A flat literal is sugar and desugars into the predicate list.
Constants§
- TRANSIENT_
CODE 🔒 - The one code that tells a client nothing was done and to retry. Suotar sends it only for a whole request.
Functions§
- matches_
item - matches_
request - A request-shaped effect fires only when every item resolves to the fault’s owner: on a mixed
batch it would otherwise kill rows nobody armed anything for. List-by-course and
malformedRequestare the exceptions, because there Suotar itself fails the whole request for any one item: a code whose lookup fails, or an item it cannot validate. - owner_
matches 🔒 - Each half constrains only the keys the item carries, so on
list-by-course— which carries no student number — the course half alone decides. - resolvable_
keys 🔒 - What an endpoint can resolve, not what its body carries: verify’s body holds only a submitted attainment id, and the working set reads the person behind it.
- validate
- Rejects a fault that could never fire, and the one combination that would fire and be wrong.