Skip to content

Versioning & Tags

JustWorkflowIt uses immutable versions with mutable tags to give you safe, zero-downtime workflow deployments.

Every workflow version is assigned a monotonically increasing versionNumber and a unique versionId. Once registered, a version’s step definition cannot be changed — this guarantees that running jobs always execute the exact definition they started with.

Tags are named pointers (like $LIVE) that can be moved between versions atomically. This decouples “which version to run” from “which version exists”:

Version 1 (old)
Version 2 ← $LIVE # Currently active
Version 3 (staged) # Ready to promote

Promoting Version 3:

Terminal window
curl -X PUT .../tags/$LIVE -d '{"versionId": "version-3-uuid"}'

Now $LIVE points to Version 3. Any new jobs referencing $LIVE will use Version 3. Jobs already running on Version 2 are unaffected.

If you register a version with a definition identical to the current $LIVE version (byte-for-byte after minification), the existing version is returned instead of creating a duplicate.