Skip to main content

Online edition for BLOGE 0.9.9-RC1 · prepared 2026-11-02 · 中文

Appendix B — Session Cheat Sheet

Read Chapter 14 first. Return here when authoring or diagnosing a multi-turn session.

Choose the Boundary​

NeedUseDo not use
One external pause and resumeGraph awaitA session with one artificial round
Repeated outside turns with similar processingsessionA hand-built loop around HTTP requests
Named business states and backward transitionsstate_machinePhase names pretending to be states

Phase Card​

ItemQuestion
ONCE or ROUNDDoes this phase run once, or once per incoming signal?
max_roundsWhat finite budget stops a runaway conversation?
untilWhat observable result ends the phase?
signal schemaWhich payload is legal at this boundary?
timeout / idle timeoutHow does waiting end without a signal?
ownerWhich outer runtime owns identity, recovery, and termination?

Runtime Moves​

MoveMeaningEvidence to retain
startCreate one stable session identityDefinition version and initial context
signalDeliver one validated round payloadSignal type, correlation identity, accepted/rejected outcome
restoreRehydrate from the last durable snapshotSnapshot version and original deadlines
terminateEnd by policy rather than normal untilStable reason and final status

Failure Scan​

  • Reject an invalid signal before it mutates round state.
  • Keep phase and session round limits finite.
  • Test late, duplicate, and concurrent signals.
  • For crash recovery, use bloge-session-durable; an in-memory session is not a durability claim.
  • In nested orchestration, send all external signals through the declared outer owner.

Mainline: Chapter 14, Chapter 16. Exact contracts: docs/session-phase-round-specification.md, bloge-session-ext, and bloge-session-durable in the BLOGE source tree.