I have some tasks (mostly IO and FS operations) which form a directed acyclic graph (DAG). I want them to be executed according to the DAG ordering so that each task is executed in its own goroutine. If one task fails, the entire suite is cancelled. The task collection is predefined, so I have static DAG configuration at compile-time.
Which package should I use for it?