翻訳: スターバックスは2フェーズコミットを使わない | Ouobpo

翻訳: スターバックスは2フェーズコミットを使わない

 『Enterprise Integration Patterns』の著者の1人であり現在GooglerのGregor Hohpe氏が「Gregor's Ramblings」というブログを書いていますが、著者本人から許可をいただいたので、それを翻訳するプロジェクトを始めました。
http://code.google.com/p/gregors-ramblings-ja/

 Hohpe氏のブログは、EIPの著者であるだけに、EAIやSOAに関する最先端の面白いアイデアがたくさん書かれています。第一回目は、その中でももっとも有名な記事「Starbucks Does Not Use Two-Phase Commit(スターバックスは2フェーズコミットを使わない)」を翻訳しました。

 この記事は、Joel Spolsky編著の書籍『The Best Software Writing I』にも選ばれた記事です。非同期メッセージングが複雑に絡み合うエンタープライズ統合システムにおいて、2フェーズコミットによる厳密なトランザクション管理を行わずにシステムを設計する戦略を紹介しています。

 私自身、多くの様々なシステムをつなぎ合わせて作るSOAのようなシステムでは、WS-TxやJMS Txなどを使って従来の単独アプリケーションの設計でやるように厳密なトランザクション管理を強制するのは、現実的ではないと思っています。システム同士が密結合に絡み合ってしまい、いずれ破綻するだろうからです。この記事は、その辺りの実際的な設計方法について、色々と考えさせてくれる内容になっています。

2週間の日本旅行から帰ってきた。日本で見られる有名な景色の1つに、ありえない数のスターバックス・コーヒーショップがある。とくに、新宿と六本木がすごいことになっている。注文した「ホットココア」を待っている間に、スターバックスでどのように飲み物の注文が処理されているのかを考えてみた。スターバックスは、他のビジネスだってみんな同じだけれど、注文のスループット(処理量)を最大化することを第一に考えている。注文が多ければ多いほど、儲かるからだ。その結果、スターバックスは非同期処理をやる。・・・

つづきは、こちら