BT

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

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

ブックマーク

原文(投稿日: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

コミュニティコメント

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

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

BT

あなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。

Eメールを変更すると確認のメールが配信されます。

会社名:
役職:
組織規模:
国:
都道府県:
新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。