記録この広告は、90日以上更新していないブログに表示しています。ESについてのまとめCQRS+ESというアーキテクチャがどういったものか気になったので調べたことをまとめてみた。データの読み込み(クエリ)と書き込み(コマンド)の責務を分離するアーキテクチャのこと。コマンドモデルユーザーインターフェースなどのクライアントから実行される振る舞いを持つデータの書き込みに責務を持つ操作の成否以外の情報を呼び出し側に返さないクエリモデル非正規化したデータモデルデータの表示のみに責務を持つデータモデルがSQLだった場合はクライアントの表示内容毎にテーブルを用意する操作は冪等であることが保証されるクエリモデルの更新コマンドモデルの実行時の最後にはイベントが発行される。特別なサブスクライバが全てのイベントを受信していて、受け取ったイベントに沿ってクエリモデルを更新し、変更を反映する。更新を同期的にするか非同期処理にするかはシステムの負荷がどれくらいかかるかによって選択されるべきである。同期的な場合は一貫性が保たれるが、システム負荷は高くなる。非同期処理の場合は負荷は抑えられるが、表示されるまでに時間がかかってしまう。イベントソーシング(ES)とは状態(State)を永続化するのではなく、Eventを永続化(ソーシング)すること。ソフトウェアに何が起きたのか(Event)を記録しておくことで現在の状態を割り出す。最新の状態だけを永続化すること。イベントソーシングならソフトウェアの履歴が完全に保存されるある時点での状態を再現できる状態遷移は,私たちの問題空間における重要部分であり,私たちのドメインでモデル化されるべきものです。在庫10例えば4のイベントを取り消したければ3のイベントまで再生することで状態を再現出来る。イベントストアイベントを永続化する為のデータストア。ベースの実装https://github.com/arkency/rails_event_storeCQRSとESの組み合わせクエリモデルとコマンドモデルをそれぞれ永続化すると、コマンド発行後にクエリモデルが同期されていることを担保することが難しい。そこでイベントソーシングを組み合わせることで、コマンドモデルでイベントの永続化を行い、永続化されたイベントによって用途に合わせ何度でもいくらでも最適化されたクエリモデルを作ることが可能になる。ESについてのまとめElectronでSubsonicクライアント作った話Subsonicとかいうメディアストリーミングサーバー構築できてどこからでも音楽聞けちゃうやつ月別アーカイブはてなブログをはじめよう!hi_yamamotoさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。