Azure-functions-durable-extension: Ability to "revive" failed orchestrations

Created on 8 May 2018  路  10Comments  路  Source: Azure/azure-functions-durable-extension

Problem

There are cases when an orchestrator instance can fail due to a bug, an environment issue, etc. In such cases, the orchestration fails and the process needs to be manually restarted from scratch. This is not ideal because often times the process involved several complex steps, human interactions, etc, and it's not always practical to rebuild that state.

Proposal

The durable task framework uses an event sourcing model under the hood to manage state. This means that in theory it should be possible to "rewind" back to a previously known good state and restart execution from there. Exposing this as a feature would be a great way to recover failed orchestrations (after the underlying issue has been fixed).

dtfx enhancement

Most helpful comment

We've added this to the v1.6.0 release, which is available now. Release notes and documentation will be available soon.

All 10 comments

Hello @cgillum,

I am interested in working on this issue if you agree.

Do you have already design considerations in mind?

Thank you!

Actually, we already have our intern Catherine working on this one. It reminds me that we need to make her a contributor to this repo so we can properly assign this issue...

Hello @cgillum,

Great!

Thank you for the update!

Hi Guys,
Regarding above mentioned feature, this was the most important scenario for us to handle while we are designing a new architecture where we wanted to support replays from failure points if all retries in a workflow fails.
@cgillum - Is it possible to share some estimated time line for this work with us? Would it be part of v2 GA?

Thanks a lot in advance,
Vijay

@vjhbtigoyal yes, this feature will be available no later than the v2 GA.

We've added this to the v1.6.0 release, which is available now. Release notes and documentation will be available soon.

Hi @cgillum,

Great to hear that this has been added to the v1.6.0 release. I would really like to use this in my function apps, but have no idea how to go about it.

Has the documentation for this been made available yet (I haven't found anything related to it)? If so, could you point me to where it is?

Thanks!

Jonas

Thanks for the links @cgillum, looks very straightforward to use.

It's currently in preview. Do you have any idea/guesstimate as to when this might come out of preview? Curious as I am hoping to use this in a production scenario as soon as possible.

We don't have a date you for when it will come out of preview. We need a bit more information about how well (and whether) it's working for people first.

Was this page helpful?
0 / 5 - 0 ratings