-
Notifications
You must be signed in to change notification settings - Fork 284
Description
Is your feature request related to a problem? Please describe.
Not a problem per-se, just an optimisation.
Describe the solution you'd like
Given an Orchestration where multiple Activities are called
And each Activity returns a large Object graph to the orchestration
When all Activities are complete, references to the Object graphs (re-use the large message store in TaskHub maybe?) are returned to the orchestration (rather than the actual Object Graphs themselves)
Then the list of references are passed as an input to a subsequent Activity
And in the Activity, the binding automatically loads the reference/s and deserializes into a List of the Objects, ready for processing.
Describe alternatives you've considered
I could manually use blob storage to store the object graphs and pass around the references, but this is just unsightly boilerplate. It would be very convenient if the extension could do this for me.
Additional context
The purpose of this is stop the Orchestration having to load and unload many large objects (from the result of an activity) into memory, just for them to passed to subsequent Activities.
The reason for raising this is that I'm using Activities to load pages of data from CosmosDb. Once all pages are loaded, I need to process them all together in an final Activity. It seems very wasteful that I have to build up a list of the pages in the Orchestration, and isn't a pattern that scales. Equally, using blob storage to manually store the pages seems like a step-backwards considering Durable Functions is so good at hiding the underlying transient data as part of a workflow.