Skip to content

Work Avoidance Techniques

Techniques for detecting when work can be safely skipped.

Layer Your Checks

Start with cheap checks (existence), then content hashes, then semantic comparison. Each layer catches different scenarios.


Overview

Each technique answers a specific question:

Technique Question Best For
Content Hashing "Is the content different?" File comparisons, config sync
Volatile Field Exclusion "Did anything meaningful change?" Version bumps, timestamps
Existence Checks "Does it already exist?" Resource creation (PRs, branches)
Cache-Based Skip "Is the output already built?" Build artifacts, dependencies
Queue Cleanup "Should queued work execute?" Mutex-locked workflows

Combining Techniques

Techniques can be layered for maximum efficiency:

flowchart TD
    subgraph layer1[Layer 1: Existence]
        Exists{Resource exists?}
    end

    subgraph layer2[Layer 2: Content]
        Hash{Content hash matches?}
    end

    subgraph layer3[Layer 3: Semantic]
        Volatile{Only volatile fields changed?}
    end

    subgraph action[Action]
        Skip[Skip]
        Execute[Execute]
    end

    Exists -->|Yes| Hash
    Exists -->|No| Execute
    Hash -->|Yes| Skip
    Hash -->|No| Volatile
    Volatile -->|Yes| Skip
    Volatile -->|No| Execute

    %% Ghostty Hardcore Theme
    style Exists fill:#65d9ef,color:#1b1d1e
    style Hash fill:#fd971e,color:#1b1d1e
    style Volatile fill:#9e6ffe,color:#1b1d1e
    style Skip fill:#5e7175,color:#f8f8f3
    style Execute fill:#a7e22e,color:#1b1d1e

Choosing a Technique

Scenario Recommended Technique
File distribution with version bumps Volatile Field Exclusion
OCI image rebuilds Content Hashing
PR/branch creation Existence Checks
Dependency installation Cache-Based Skip
API state synchronization Content Hashing
Generated file deployment Volatile Field Exclusion
Idempotent workflows with mutex locks Queue Cleanup

Comments