Overview
Added
- Added support for tenant-scoped shared concurrency strategies. Declare a
ConcurrencyExpressionwithis_tenant_scoped=Trueand aname, and reference the same name from theconcurrencylist of tasks in different workflows so they share a single concurrency limit. Tenant-scoped entries can be mixed with ordinary workflow-scoped entries on the same task. ConcurrencyExpression.max_runsnow acceptsint | str: a string is a CEL expression over task input computing the max runs for each concurrency group, so different groups (e.g. pricing tiers) can have different limits.- Fixes another durable callback ordering bug which would cause NonDeterminismErrors to be raised on replay in the case where e.g. children were spawned recursively, concurrently.
- Makes workflows register concurrently on
startto speed up worker boot time
Installation
Install the SDK using pip:
pip install hatchet-sdkOr using poetry:
poetry add hatchet-sdkDocumentation
For detailed documentation, examples, and best practices, visit:
What's Changed?
- feat(sdks): new concurrency features (dynamic max runs, tenant-scoped concurrency) (#4873) by @abelanger5