システムを設計するとき、まず考えるのは「理想」の流れです。でも、実際に人が使うシステムでは、通信が切れることも、入力を間違えることも、外部サービスが応答しないこともあります。「うまくいかなかったとき」まで含めて設計することについて考えます。