Choenden Kyirong
04/06/2023, 7:15 AM--> task_b --
        |            |
task_a -             ----> task_d
        |            |
         --> task_c --task_dtask_btask_cMatt Fysh
04/06/2023, 11:30 AM@flow
async def my_flow():
  future1 = task_b()
  future2 = task_c()
  result1 = await future1
  result2 = await future2
  task_d(result1, result2)Nathan Low
04/06/2023, 12:41 PM@flow
def always_succeeds_flow():
    x = always_fails_task.submit().result(raise_on_failure=False)
    y = always_succeeds_task.submit(wait_for=[x])
    return yNathan Low
04/06/2023, 12:41 PMChoenden Kyirong
04/06/2023, 8:56 PMChoenden Kyirong
04/06/2023, 8:59 PMfirst_task >> [second_task, third_task]
third_task << fourth_task
or 
first_task.set_downstream(second_task, third_task)
third_task.set_upstream(fourth_task)Choenden Kyirong
04/06/2023, 9:00 PMChoenden Kyirong
04/06/2023, 9:08 PMwait_for@flow
def my_flow():
    x = task_a()
    future2 = task_b(x).submit()
    future3 = task_c(x).submit()
    z = task_d(wait_for=[future2, future3])Matt Fysh
04/07/2023, 12:26 AMChoenden Kyirong
04/07/2023, 12:31 AM