BT

将来に発生することのスケジューリングについてGreg Young氏が語る

| 作者: Jan Stenberg フォローする 29 人のフォロワー , 翻訳者 徳武 聡 フォローする 0 人のフォロワー 投稿日 2014年7月10日. 推定読書時間: 1 分 |

原文(投稿日:2014/06/23)へのリンク

メッセージングベースのシステムを考えるとき、将来へのメッセージ送信を遅延させるのはとても強力なパターンだ。このパターンは時間に関する問題に対処するにはとても便利だ。ロンドンで開催されたDDD ExchangeカンファレンスでGreg Young氏はそう語った

氏はCQRSという言葉を作り、この主の問題の例を示した。つまり、将来のスケーリングをどうするかという問題だ。一般的な解決策はドメインモデル上へクエリを実行し、集約モデルを更新するバッチジョブだが、ドメインの専門家はこのようなジョブについては語らない。これはスケジューリングに関わることであり、現時点のスケジューリングによって将来に発生する物事に関わることだ。

このような問題をモデリングする方法として、氏がよく言及するのがメッセージを発行し、そのメッセージが将来のある時点で配信されるようにする方法だ。これを実現する一般的な方法はメッセージにオブジェクトの状態を書き込み、システムにある将来の時点、一般的にはタイムアウト時にそのメッセージを送信するよう設定する。この方法によって、時間の問題はなくなる。メッセージがいつ到着したか、ではなく、どの順で到着したか、が焦点になるからだ。

ドメインモデリングの観点からは、全く違うモデルが生まれる。ドメインの専門家とは将来の振る舞いやスケジューリングの振る舞いを話す。バッチやクエリの話はしない。ドメインの専門家にとってもそれが自然だ。一般的な集約モデルとイベントベースも出るの重要な違いは、集約モデルの場合、クエリを使って状態を解決する必要がある。クエリを使わないと状態が正しくなくなる。イベントモデルでは状態は常に正しい。

Greg氏は時間がドメインの概念になる場合には多くの問題が生まれ、イベントベースのモデリングは、集約やフラットなステートモデルよりも時間に関する問題にフィットする、という。ドメインの時間的な側面を未来への遅延メッセージというかたちで明示的にモデリングできるからだ。すべての問題を解決するわけではないが、このソリューションが最適な状況がある、というのが氏の考えだ。

来年のDDD Exchangeは2015年6月19日に予定されている。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT