Description
Row Lifecycle Monitoring runs tenant-scoped scans that identify isolated records, untouched content, and status items that have exceeded an SLA.
Each detector implements a separate scheduled-scan predicate: orphan detection looks for missing relationships, staleness compares activity with configured ages, and stuck detection evaluates workflow status against elapsed time. Results are bounded signals rather than row rewrites, allowing downstream queues or user interfaces to decide how attention should be assigned.
Selling Points
- Turns neglected data into bounded work signals.
- Uses deterministic clocks and tenant-scoped queries.
- Avoids silently rewriting the rows it diagnoses.
- Gives orphaned knowledge and stalled work explicit, explainable reasons.
- Lets each Dotabase tune thresholds without changing detector code.
User Story
As a program manager, I receive a queue of stale knowledge and work stuck in progress before it disappears from attention. I configure age, terminal-state, access, and batch thresholds that fit the Dotabase. Scheduled runs identify only qualifying rows and emit work signals with the relevant reason. I walk away with a bounded review list and can resolve, archive, or reconnect items through ordinary workflows rather than accepting an automatic mutation.
Extension Surface
Configurable: bindings set age thresholds, terminal statuses, access requirements, and per-scan limits.
packages/dotabases/src/behaviors/staleness-detection/index.ts shows the binding-level extension surface. Owners tune policy within supported predicates; arbitrary scheduled SQL and custom side effects are not loaded into the detector.
Capabilities & Limits
- Capability: Executes the scoped workflow described above through the cited live implementation paths.
- Capability: Preserves typed validation and applicable tenant, schema, lifecycle, or service boundaries.
- Limit: The behaviors emit signals; downstream consumers or UI surfaces decide how to display and resolve them. Monitoring can detect isolated rows, elapsed review windows, and in-progress items beyond an SLA while keeping queries tenant-scoped and bounded. It cannot determine whether old content is actually wrong, repair a missing relationship, or choose the correct resolution. Accurate clocks and meaningful workflow fields remain prerequisites.
Implementation Map
packages/dotabases/src/behaviors/orphan-detection/index.tspackages/dotabases/src/behaviors/staleness-detection/index.tspackages/dotabases/src/behaviors/stuck-detection/index.ts