Hatchet v0.94.10 - Retention and Worker Metrics


Hatchet v0.94.10, published on July 14, 2026, gives platform operators separate retention controls for OLAP partitions and core data. The release also improves worker capacity metrics, Go SDK stream recovery, session cleanup, and local development.

The full release notes and downloads are on the GitHub release page.

The engine can now apply independent retention periods through SERVER_LIMITS_OLAP_PARTITION_RETENTION and SERVER_LIMITS_CORE_PARTITION_RETENTION. If either value is absent, Hatchet falls back to SERVER_LIMITS_DEFAULT_TENANT_RETENTION_PERIOD.

This removes the previous coupling between analytical partitions and core state. An operator can keep the data sets on different schedules without relying on one tenant retention value for both stores. Existing deployments retain their current behavior when the new settings are not defined, because the old setting remains the fallback.

The practical work is in policy review. Before setting different periods, identify which queries depend on OLAP history and which operational records must remain in core storage. The release notes do not describe a forced migration for these settings, so the main change is explicit configuration rather than a new default.

Three Prometheus gauges expose worker slot capacity per worker pool and label. hatchet_tenant_worker_label_slots reports total slots, hatchet_tenant_used_worker_label_slots reports slots in use, and hatchet_tenant_available_worker_label_slots reports free slots.

These gauges make saturation visible at the same label boundaries used to route work. Operators can compare used and free capacity before a queue delay becomes a worker shortage. Since the series are grouped by labels, monitor series growth when tenants use many distinct worker label combinations. The tenant metrics documentation lists the exposed metrics.

The Go SDK also changes listener failure handling. Streaming listeners reconnect automatically with jittered backoff. A dead listener no longer leaves Workflow.Result() waiting indefinitely, and a transient network failure no longer terminates a worker. This is an availability fix for long running workflow clients, but it also means connection failures can recover without an immediate process restart. Alerts should still expose repeated reconnects instead of treating recovery as proof that the network path is healthy.

The UserSession cleanup job could time out after a change introduced in v0.90.13. Hatchet now indexes the columns used by that cleanup path, and the migration runs automatically during the upgrade.

This is a database maintenance fix with an operator visible effect: cleanup should stop spending its timeout budget on the affected lookup. It is still worth observing migration duration and database load during rollout, especially on installations with a large session table. The notes do not specify an offline step or manual schema command.

Hatchet adds development images named hatchet-api-dev, hatchet-engine-dev, hatchet-admin-dev, and hatchet-dashboard-dev. The CLI command hatchet server start --disable-auth selects hatchet-lite-dev instead of hatchet-lite.

This mode embeds one global worker API key in the binaries. It is intended only for development and testing. Do not carry the development images or --disable-auth flag into a shared or production environment. The project documents the mode for both the CLI and Docker Compose.

No manual action is documented for the UserSession index migration. For the retention split, leaving both new variables unset preserves the fallback to SERVER_LIMITS_DEFAULT_TENANT_RETENTION_PERIOD.