Skip to main content

Online edition for BLOGE 0.9.8-RC1 · facts verified 2026-09-15 · 中文

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.