FSO Learning

Core Ideas

Continue the Same Work

Keep the actual work and resources bound to their continuation.

A reviewer approves announcement version 7. Publication receives version 8 instead. Both are announcements, but only version 7 was reviewed.

The same problem occurs when two stores both contain record 7.

What matches? What still needs checking?
Record type Actual record and scope
Provider type Configured provider instance
Proposal ID Exact reviewed version
Department role Actual person and current authority

Carry the work and resources the next step relies on. If a later boundary reloads them, check the binding there.

The reference carries real data inside its protected state:

pub struct Verified<'a, P, E> {
    workshop: &'a mut Workshop<Google<P>, WithoutPassword, E>,
    subject: String,
}
Engineering Depth

The fields are private. The mutable borrow retains this workshop through the registration steps. Other code cannot swap its store or provider during that borrow.

Later handles check the workshop instance at runtime:

if !Arc::ptr_eq(&self.workshop.identity, &self.session.workshop) {
    return Err(EntryFailure::ForeignSession);
}

A zero-sized marker fits a data-free choice. This state needs both a subject and a resource borrow. CS-06, CS-07.

Your Reflection

Can a later step accept new input without replacing the original work?

Worked Discussion

Yes. A delivery observation can add evidence about the already-bound operation. It must identify that operation. Replacing the reviewed version is a different change.

Navigate