From error-handling to structured concurrency
Summary
The article argues for structured concurrency as a pattern to manage errors across multiple concurrent tasks. It analyzes how error propagation, cancellation, and resource cleanup can be orchestrated with a tree of tasks and parent/child lifetimes, and discusses implementations like Python's asyncio TaskGroup and Go's errgroup.