寓話
城門の仕事をすべて最初の使い走りに任せてはならない
旧市街の窓口には長い机が一脚しかなかった。誰かが請求を机の前に差し出すと、当番がすぐに処理した。住所変更、在庫確認、契約書作成、代金回収、すべてが同じ列に押し込まれていた。
ビジネスが始まったばかりの頃は、これが最速でした。顧客が一言送ると、フロントの担当者がすぐにツールを取って処理し、結果がすぐに返ります。誰もより複雑な仕組みが必要だとは思いませんでした。
後にタスクは厚くなった。一行の記録を調べるだけでよいリクエストもあれば、十分間の推論を走らせるものもあり、外部システムの返信を待つものもあった。受付窓口は長いタスクに塞がれ、短いタスクも一緒に並ぶしかなかった。
主管の素朴な修繕は、走り使いを何人か多く派遣することだった。短期的には列が短くなるが、数日後にはもっと悪い問題が現れた。同じタスクが二人に奪われ、失敗したタスクは誰も覚えておらず、夜の間に溜まった仕事が朝に一斉にシステムを押し潰した。
また誰かが、受付の番頭に順番を自分で判断させようと提案した。しかし受付の番頭は目の前のリクエストしか見えず、街全体の負荷、商店の優先度、タスクの依存関係、失敗回数を知らない。賢い局所判断では混乱した全体スケジューリングは救えない。
新しい総管は長机をタスク棚に変えた。各タスクカードには種類、テナント、優先度、締切、再試行回数、実行可能条件が明記されている。フロントは注文を受けて棚に入れるだけを担当し、作業員は異なる引き出しから規則に従って取り出す。タスク棚は異なる職種ごとに容量を残した。契約を書く人は在庫を運ばず、集金を促す人は技術修復を奪わない。夜間に滞留が多すぎる時は、调度鐘がまず顧客が待っている短い仕事を保護する。
任務棚のそばにはまた调度鐘がある。軽い任務は速い道を進み、重い任務は后台に入り、失敗した任務はバックオフ時間に従って再試行され、依存が未完了の任務はまず凍結される。各作業員は任務を受け取った後、開始・完了・失敗理由を登記しなければならない。主管が最も満足しているのは、失敗がもう消えないことだ。どのカードが三回再試行され、どのカードが外城の返信を待ち、どのカードが親方に渡さなければならないか、すべて櫃面で見える。事務庁はついに自分がどこで忙しいかを知った。
それ以来、顧客リクエストは長い作業に引きずられて死ぬことはなくなった。業務ホールはピークを削り、作業者を増員し、ある種のタスクを一時停止し、流れからどの列が滞留しているかを明確に見ることができる。業務ホールが学んだのは待ち行列そのものではなく、仕事を対話の瞬間から切り出し、スケジュール可能・復旧可能・可観測な実行単位に変えることである。