State Machines (id_effect_fsm)
The id_effect_fsm crate adds typed finite-state machines, sagas, and linear session types on top of id_effect. It is the Phase FP FSM slice from the FP Kitchen Sink roadmap.
Why FSMs in an effect library?
Business logic often has explicit states (order lifecycle, connection handshake, approval gates). A pure transition table keeps routing declarative; Effect programs attach side effects at the edges via run_blocking.
Crate layout
TransitionTable— immutable edge mapStateMachine— mutable current state +stepInterpreter— effectful steppingto_mermaid— documentation diagramsSaga— compensate on failureSessionSend/SessionRecv— linear protocolsstep_durable— SQLite snapshots viaid_effect_workflow
When to use workflow bridge
For single-process restart resume, pair FSM stepping with id_effect_workflow. For multi-service orchestration, prefer an external engine (Temporal, Step Functions).