FSO Learning

What-If Cases

Keep Track of Owed Work

Trace owed work across leaving, abandonment, restart and retirement.

An account has been recorded, and confirmation is still pending.

Interruption What must remain owned?
Participant closes the browser The owed message
Worker stops before delivery The unfinished delivery
Process restarts Any obligation promised to survive restart
New registration is retired Existing pending work

Identify the owner and storage needed for each row.

Engineering Depth

The reference keeps the obligation in its workshop object:

drop(work);
let delivery = shop.pending_confirmation().unwrap();
drop(delivery);
assert_eq!(shop.owed_messages(), 1);

Dropping either handle leaves one message owed. Destroying the workshop object loses its memory. A production story that promises restart recovery needs durable storage and source-safe recovery. CS-07, CS-09.

Your Reflection

Which interruptions does the reference survive? What must a durable version add?

Worked Discussion

It survives abandoned handles while the workshop object lives. It does not survive losing the process.

For retirement, decide how existing work will finish, migrate or be cancelled under proper authority. Removing the new-registration route does not settle those obligations.

Navigate