Skip to main content

request_fingerprint

Function request_fingerprint 

Source
pub fn request_fingerprint(
    config_fingerprint: &str,
    clock: Option<&str>,
    timeout_secs: Option<u64>,
    labels: &BTreeMap<String, String>,
) -> String
Available on crate feature serve only.
Expand description

Fold the run-affecting request fields into the config fingerprint.

The idempotency key identifies a request, not just a config: a key replayed with the same merged config but a different clock, timeout_secs, or labels is a genuinely different run and must be detected as a conflict (409), not silently replayed as the original (#146 M7). clock is the most important — it sets the ${now.*} backfill window the run reads, so a retry that changes only the clock would otherwise return the original backfill’s result.

labels is hashed in BTreeMap (sorted-key) order, so the result is stable regardless of insertion order.