Replies: 4 comments 4 replies
-
@cgillum @sebastianburckhardt bumping this as a friendly reminder, I'd like to get your thoughts on this. |
Beta Was this translation helpful? Give feedback.
-
Hi, I am sorry for the trouble. Can you provide me the orchestratior instanceId that had this issue, with region, and app name? I can query it to see what happened. Thanks! |
Beta Was this translation helpful? Give feedback.
-
Unfortunately, I had to reset everything (by removing the func app' storage account, the durable functions' storage account, and the func app itself and then re-provision everything again) so I don't have any of those logs. I'm pretty sure it will happen again soon...in the meantime do you guys see any issue, concern, or consideration with the illustrated approach? |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
There might be some orchestrations kinda complex in terms of the workflow, interactions with external services, activities, etc, so in order to avoid having all that logic in the orchestrator trigger implementation and make it readable (avoid Spaghetti code), clear, and maintainable is it a good idea to break it down in several pieces using let's say factory/strategies or even implement it as a partial class? of course, as the documentation states, all the async calls would be the ones provided by the
IDurableOrchestrationContext
object, for example:Factory example:
Strategy example:
As you can see the orchestrator trigger implementation is simple because all the logic is broken down into strategies, you can imagine that having all the strategies code in the orchestrator trigger implementation would be quite convoluted. Do you guys see any risk/consideration with this approach in terms of misbehaving at runtime? I'm asking because while this works like a charm locally we've had issues with the production environment mostly with instances getting stuck, particularly when I switched to the new partition manager.
Another way to implement it would be via partial classes rather than breaking it down into strategies.
cc: @cgillum @sebastianburckhardt
Beta Was this translation helpful? Give feedback.
All reactions