Expand description
Normalized workload model: the canonical ParsedOp representation.
All YAML shorthand forms normalize to this model. This is what driver adapters consume.
Structs§
- Aggregate
Expr - An aggregate expression: either
mean(recall) over profile~label(single-key filter form, emits one aggregate row) ormean(recall) over k,limit,optimize_for(multi-key grouping form, emits one aggregate row per distinct value-tuple). - Backoff
Spec - Retry-backoff settings carried by the map form of
tries:(tries: {count: N, backoff: {ratio, min, max}}). Each field is optional — a missing key falls back to the op’s standaloneretry_backoff*param, then the built-in default. Durations are kept as raw strings (e.g."100ms","10s") and parsed at wrap time by the runtime, so this crate needs no time parser. - Checkpoint
- Per-phase checkpoint declaration. Three legal forms in YAML:
- Continue
IfSpec - SRD-101 — a
continue_ifpre-entry sweep gate declared on a comprehension-bearing scenario step or phase. A polydatwhen:predicate over the iteration’s COORDINATE context (end_of(p),idx_of(p), outer-scope consts likeeffective_max_size) plus aneach:scope level. The walker evaluates it per iteration BEFORE entering the body; while it is true the iteration runs, and the moment it is false the sweep ateachends gracefully (Interrupted+Succeeded — see SRD-101 §4). Aligns withStopConditionSpec(shareswhen/eachand theScopedExprmachinery), but is a pre-entry gate with continue polarity and a fixed graceful effect. - Dimension
Spec - A dimension a scope introduces: the label NAME whose values arrive from data, declared once at the tier that owns it.
- KeyMetric
- SRD-109 — one key-metric designation on an execution node:
column: agg(family). Designating key metrics both names the node’s measurables and attaches the node to the table row of its nearest enclosing anchor (or the spine).familyis empty for the family-lessspan(). - Metric
Spec - SRD-40b §1 schema for one synthetic-metric declaration on an op template.
- OpInterface
- SRD-108 Part B — the typed interface an abstract op slot
declares: wires the blueprint scope guarantees (
needs), wires the bound implementation must deliver via captures (yields), and wires it must deliver by projecting the result body viaresult:bindings (results, SRD-109 Part 3), eachname -> polydat type name(u64,f64,String,vec_f32,vec_i64, …). BTreeMaps so the SRD-107 config digest serializes stably. - Optimize
Block - SRD-86 — a phase
optimize:block. The optimizer maximizes theobjectivewire by writing theaxesinput wires on the phase kernel. - Parsed
Op - A normalized op template — the canonical form.
- Phase
Poll Spec - Phase-level
poll:block (SRD-75). When set on aWorkloadPhase, the runner wraps the phase’s cycle execution in a wall-clock loop that re-runs all ops per iteration untiluntil(a Polydat boolean expression over captures) returnstrueortimeout_mselapses. - Readouts
Bindings - Per-event-slot list of readout body strings declared in
the workload’s
readouts:block. See SRD-63 §5.0 for the three legal forms. - Stop
Condition Spec - SRD-83 — one stop condition declared on a shell. A polydat
condition:/when:predicate over runtime-state wires (op_count,error_rate,elapsed_ms,children_failed, …); aper:/each:detection distribution selector (which scope levels it is evaluated at); apulse:firing axis; anaction:/effect:(fail→ Interrupted+Failed,stop→ Interrupted+Succeeded); and anat:action target scope (default = the innermost level ofper:). When the predicate trips it stops theat:scope with the effect. Detection scope (per:) and action scope (at:) are independent. - Summary
Config - Parsed summary report configuration.
- Throttle
Spec - Adaptive backpressure governor parameters (SRD-83 §throttle).
The governor keeps the WINDOWED attempt-failure fraction — the
see-through-retries saturation signal — under
highby walking the named dynamic control down multiplicatively, and recovers it toward the authored ceiling while the window stays underlow. - Traverse
Spec traverse:— knobs on the result-traversal layer.- Workload
- A complete workload definition after normalization.
- Workload
Phase - A workload phase: runs as a separate Activity with its own cycle count, concurrency, rate limit, and op selection.
- Wrappers
Config - SRD-32a Push 3 — wrapper-composition override block. Carries an explicit innermost-to-outermost order list that the resolver uses in place of its built-in default-order tiebreaker. The list must be a permutation of the wrappers the op actually triggers (after transitive activation); listing a non-triggered wrapper or omitting a triggered one is a hard error per SRD-32a §“Workload-level override”.
Enums§
- AggFunction
- Supported aggregation functions for summary report expressions.
- Bindings
Def - How bindings are defined for an op.
- Daemon
Spec - Daemon-fiber capacity declaration. The on-disk surface accepts multiple YAML scalar shapes (bool / int / string) that all map into this two-variant enum.
- Delay
Spec - Per-op delay specification. Two surface forms on YAML:
- Dimension
Type - Declared value type of a
DimensionSpec. - KeyAgg
- SRD-109 — the time-dimension aggregate a key-metric designation
carries. MANDATORY on every designation: there are no implied
aggregates, so
rows: result_success(no qualifier) is a parse error naming this vocabulary. Defined over the stored samples of one instance within the row scope’s activation window — which, per the SRD-42 amendment, are last-write-wins point samples with PromQL semantics. - Legacy
Result Wire Spec - Metric
Kind - Metric type discriminator. SRD-40b §1.
- OnMissing
- Policy for a capture that resolved to nothing.
- Pulse
Spec - SRD-83 follow-up — the FIRING axis (when a condition is evaluated),
as a tagged-union value so the field name can’t overclaim
periodicity.
continuousnames the existing inline (per drain-loop turn) evaluation;phase_endnames the phase-completion aggregation. A cadence value ({every: <duration>}) driving the metricsCadenceReporterregistry is a later step and is intentionally NOT accepted here yet. - Result
Fragment - One step of
ResultSpec::walk_fragments. Either a string-shape source block (compile as a Polydat module) or a map-shape(name, source)pair (compile as a singlename := sourcebinding). - Result
Spec - SRD-66 result-bindings declaration. Vari-structured to match the three YAML shapes the user can write:
- Scenario
Node - A node in a scenario execution tree.
- Scope
Level - SRD-83 — a scope-tree level a stop condition distributes to. The
each:selector names one or more of these; the matter walk binds the predicate at every node of a named level inside the declaring subtree (a declared, structural fan-out — never inferred from the predicate’s content). Aligned to the executor’sScopeKind. - Throttle
Field throttle:— adaptive backpressure governor: boolean sugar (throttle: true= all defaults) or the full spec map.
Functions§
- parse_
daemon_ spec_ value - Parse a YAML/JSON scalar into a
DaemonSpec. - parse_
delay_ spec_ value - Parse a YAML/JSON value into a
DelaySpec.
Type Aliases§
- Result
Wire Spec - Legacy alias for backwards compatibility during Push 2.
Drops once every consumer migrates to
ResultSpec. - Scenario
Step - Legacy alias.