Learning

Core Ideas

Say What Happened

Preserve what is known, unknown and still owed.

Downloads

Registration is recorded, confirmation is queued, and the account screen fails to refresh.

Operation Known result Next step
Registration Recorded Keep that result.
Confirmation Pending Continue the owed delivery.
Account view Unavailable Refresh the view.

Calling all three “registration failed” would encourage duplicate work.

Misleading message Useful message
“Registration failed. Try again.” “Registered. Confirmation is pending. Reload your account view.”
“Send failed.” after a timeout “Send outcome unknown. Check operation 42 before resending.”

A lost response after a remote send is different: the send may have succeeded. Keep the original operation ID and ask the source what happened before retrying unsafely.

A timeout leaves a question. A lost response leads to reconciliation of the original operation. A confirmed effect is recorded; a confirmed non-effect can use the source retry contract; an unresolved effect stays unknown.A timeout leaves a question. A lost response leads to reconciliation of the original operation. A confirmed effect is recorded; a confirmed non-effect can use the source retry contract; an unresolved effect stays unknown.
Engineering Depth

The reference separates these identity outcomes:

pub enum IdentityFailure {
    Rejected,
    Unavailable,
    InvalidObservation,
}

A rejected assertion and an unavailable provider call for different responses. Neither records an account.

Represent the alternatives the operation really has. A pure label formatter can return its label directly. Remote delivery needs its own outcome and recovery contract. CS-08, CS-09.

Your Reflection

A reviewer records “reject this proposal.” Did the review operation fail?

Worked Discussion

The review completed with a rejection decision. Refusing an unauthorized person's attempt to review is a separate outcome.

Navigation