Start here. This is the direct spoken answer to practice first.
Overview
Defines fail-fast, all-results, and partial-success behavior for concurrent asyncio operations.
I decide the result contract before starting tasks: all-or-nothing, fail-fast, or itemized partial success. Every started task remains owned and awaited so its exception or cancellation is observed. TaskGroup can cancel siblings and raise an ExceptionGroup, while gather(return_exceptions=True) can return exceptions beside values. The caller must never mistake an incomplete batch for full success.