[FunctionName("FanOutFanInExample")]
public static async Task Run([OrchestrationTrigger]
IDurableOrchestrationContext context)
{
    var parallelTasks = new List<Task<int>>();

    // pobierz listę N elementów roboczych do przetwarzania równoległego.
    object[] workBatch = await context.CallActivityAsync<object[]>("F1", null);
    for (int i = 0; i < workBatch.Length; i++)
    {
        Task<int> task = context.CallActivityAsync<int>("F2", workBatch[i]);
        parallelTasks.Add(task);
    }

    await Task.WhenAll(parallelTasks);

    // Zagreguj wyniki wszystkich N wyjść i wyślij wynik do F3.
    int sum = parallelTasks.Sum(t => t.Result);
    await context.CallActivityAsync("F3", sum);
}
