高度な並行処理の設計
複数の非同期処理を組み合わせるときは、単にTaskを大量に開始するのではなく、同時実行数・キュー長・キャンセル・エラー伝播を設計します。
バックプレッシャー
処理する側よりデータを受け取る側が遅い場合、無制限にキューへ積むとメモリを圧迫します。容量制限付きキューやChannelなどを使い、供給側の速度を調整します。
キャンセル伝播
CancellationTokenを処理の境界へ渡し、要求が届いたら新しい作業を開始しないようにします。すでに開始した外部処理がキャンセル可能かも確認します。
障害分離
一つの処理の失敗が全体へ波及すべきか、部分的な失敗として扱うべきかを要件で決めます。リトライには回数上限、待機時間、冪等性が必要です。