Simple dependable async tasks with monitoring.
Modern services in microservice architecture might have lots of services they fetch data from.
Therefore, process of handling user request can be splited into many tasks like this:

Of course, in Go we have tools to handle concurrent tasks gracefully, like goroutines, wait groups, etc. However, they do not have any errors logging, traces collecting and other usefull stuff. Implementing it of every task manually results in lots of code duplication.
Introduce new task primitive to enable middlewares when writing concurrent workflows in Go.
Useful middlewares examples:
- write task execution time metric
- log error in task
- create span of a task.