Skip to main content

Module episode_catalog

Module episode_catalog 

Source
Expand description

DSFB-Debug: episode catalog — institutional memory for debugging episodes.

Each closed DebugEpisode is recorded into a fixed-size circular buffer. New episodes can be matched against history via signature-vector cosine similarity, surfacing past episodes whose structural shape matches the current one.

§Operator use case

At 3am, a MotifClass::CascadingTimeoutSlew fires. The catalog lookup says: “similar to episode #4173 from 23 days ago, similarity 0.91, peak_slew 0.83 vs current 0.85, contributing services were the same set”. The operator immediately reaches for the past resolution (e.g. “increased connection pool to 200, see runbook PR #2418”) rather than re-discovering the diagnosis.

Per panellist P12 (Distributed-Systems Architect, Session 6): “questions 5 and 7 of the on-call questions are ‘have we seen this before?’ and ‘what should I investigate next?’. The catalog is the answer to both.” This module is the answer.

§no_std + no_alloc — Copy slots

The catalog is a fixed-size [Option<DebugEpisode>; N] array. Older episodes are overwritten when the buffer wraps. Lookup is O(N) linear scan. Suitable for embedded deployments (no heap) and audit-grade determinism (no time-dependent state — the same record history produces the same find_similar output).

For audit-grade durability across process restarts, the operator should periodically serialise the catalog to a write-ahead log (see docs/operator_handbook.md §Episode Catalog Persistence).

Structs§

EpisodeCatalog
Fixed-size circular buffer of past episodes.
SimilarEpisode
Result of a catalog similarity lookup.