https://prefect.io logo
Title
w

Wojciech Kieliszek

11/28/2022, 2:59 PM
Hi, in Box.com as a part of the deployment pipeline for Prefect v1 flows we use a flow’s
serialized_hash()
value as an
idempotency_key
and as a docker storage tag. That way we don’t bump the versions when there is no change in a flow “schema”. But this mechanism allows us also to redeploy a docker image for the same flow version (no change in
idempotency_key
) to change logic of particular tasks when there is no change of the “contract”. So for long running flows runs we can change their behaviours to some extent during their execution or resume them after a failure with new bug-free logic. We are now in transition to Prefect v2. Is there any kind of similar mechanism available in Prefect v2?
m

Mason Menges

11/28/2022, 8:54 PM
Generally speaking something like this would be handled through blocks, From a basic perspective blocks are essentially ways to store configurations for external systems, like S3 buckets or docker containers. When you build a deployment you can specify block containing the docker image for example that you want the flow to run with and if that needs to changes you'd just updated the block rather that redeploy the flow. I don't think this would have much impact on currently executing flows though but it sounds like this might be what you're looking for.
:thank-you: 1