More Related Content
PDF
PDF
VPCのアウトバウンド通信を制御するためにおさえておきたい設計ポイント PDF
PDF
PDF
PDF
PPTX
PDF
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する What's hot(20)
PDF
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料) PDF
Building the Game Server both API and Realtime via c# PPTX
PPTX
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive PDF
PDF
分散環境におけるDocker とオーケストレーション PPTX
世界一わかりやすいClean Architecture PDF
PPTX
PPTX
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO PDF
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 - PDF
PDF
PPTX
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019] PDF
こんなに使える!今どきのAPIドキュメンテーションツール PDF
PDF
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版) PDF
PDF
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル) PPTX
Viewers also liked(16)
PPTX
S3をDB利用 ショッピングセンター向けポイントシステム概要 PPTX
AWS活用のいままでとこれから -東急ハンズの事例- PPTX
CQRS+ESをAkka Persistenceを使って実装してみる。 PDF
PDF
From ActiveRecord to EventSourcing PPTX
JAWS FESTA Kyusyu LT_ハンズラボ青木由佳 PDF
Jaws festa 2015 <40歳の開発のpmが未経験でインフラエンジニアになってみて> PDF
JAWSFESTAKyusyu_JAWSで学べることってなぁに_ゆかりんあゆゆ_20151103 PDF
[DO07] マイクロサービスに必要な技術要素はすべて Spring Cloud にある PDF
SharePoint Online Communication Sites お手軽サイト作成 PDF
[AC05] マイクロサービスは分割がキモ!基幹システムのためのドメイン駆動設計 PDF
PDF
PPTX
PDF
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017 PDF
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話 イベント・ソーシングを知る
- 1.
- 2.
- 3.
例: 本のレンタルサービス
1. ユーザが本を登録する
2. 本はユーザなら誰でも借りられる
3. 本を借りた人が本を返す
4. 本がまた借りられるようになる(2に戻る)
- 4.
- 5.
たぶんこうなる
本テーブル的なもの
タイトル 貸し出し
ONE PIECE
NARUTO
- 6.
- 7.
- 8.
- 9.
たぶんこうなる
1. スタンが「HUNTER×HUNTER」を登録
2. カイルが「HUNTER×HUNTER」を借りる
3. カイルが「HUNTER×HUNTER」を返す
4. ケニーが「HUNTER×HUNTER」を借りる
タイトル 貸し出し
ONE PIECE
NARUTO
HUNTER×HUNTER ケニーが借り出し中
- 10.
- 11.
ステート・ソーシング
• 従来の一般的な考え方
• ステート=状態
• 状態中心のソフトウェア設計
• あらゆる情報は状態が永続化される
• 最新の状態を常に記憶しておくのが一般
的
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
ほんとにそのまま記録します
1. スタンが「HUNTER×HUNTER」を登録
2. カイルが「HUNTER×HUNTER」を借りる
3. カイルが「HUNTER×HUNTER」を返す
4. ケニーが「HUNTER×HUNTER」を借りる
このままです
タイトル 貸し出し
ONE PIECE
NARUTO
HUNTER×HUNTER ケニーが借り出し中
- 18.
- 19.
- 20.
イベントを再生する順番に辿ります
1. スタンが「HUNTER×HUNTER」を登録
2. カイルが「HUNTER×HUNTER」を借りる
3. カイルが「HUNTER×HUNTER」を返す
4. ケニーが「HUNTER×HUNTER」を借りる
記録されているイベン
タイトル 貸し出し ト
ONE PIECE
NARUTO
- 21.
イベントを再生する
1. スタンが「HUNTER×HUNTER」を登録
2. カイルが「HUNTER×HUNTER」を借りる
3. カイルが「HUNTER×HUNTER」を返す
4. ケニーが「HUNTER×HUNTER」を借りる
タイトル 貸し出し
ONE PIECE
NARUTO
HUNTER×HUNTER
- 22.
イベントを再生する
1. スタンが「HUNTER×HUNTER」を登録
2. カイルが「HUNTER×HUNTER」を借りる
3. カイルが「HUNTER×HUNTER」を返す
4. ケニーが「HUNTER×HUNTER」を借りる
タイトル 貸し出し
ONE PIECE
NARUTO
HUNTER×HUNTER カイルが借り出し中
- 23.
イベントを再生する
1. スタンが「HUNTER×HUNTER」を登録
2. カイルが「HUNTER×HUNTER」を借りる
3. カイルが「HUNTER×HUNTER」を返す
4. ケニーが「HUNTER×HUNTER」を借りる
タイトル 貸し出し
ONE PIECE
NARUTO
HUNTER×HUNTER
- 24.
イベントを再生する
1. スタンが「HUNTER×HUNTER」を登録
2. カイルが「HUNTER×HUNTER」を借りる
3. カイルが「HUNTER×HUNTER」を返す
4. ケニーが「HUNTER×HUNTER」を借りる
タイトル 貸し出し
ONE PIECE
NARUTO
HUNTER×HUNTER ケニーが借り出し中
- 25.
イベントを再生する
1. スタンが「HUNTER×HUNTER」を登録
2. カイルが「HUNTER×HUNTER」を借りる
3. カイルが「HUNTER×HUNTER」を返す
4. ケニーが「HUNTER×HUNTER」を借りる
最新の状態が再現
タイトル 貸し出し
ONE PIECE
NARUTO
HUNTER×HUNTER ケニーが借り出し中
- 26.
イベント・ソーシングのすごいと
ころ
• ソフトウェアの完全な履歴が手に入る
• ソフトウェアの任意の部分あるいは全体
を「ある時点」に簡単に再現できる
• 有用な設計と相性が良い
– ドメイン駆動設計(DDD)
– コマンドクエリ責務分離(CQRS)
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
参考
• Greg Young流CQRS- Mark Nijhof
• Why Event Sourcing?
• Event Sourcing and CQRS, Let's use it.
• state ソーシング、 event ソーシング 【ス
タイルの選択肢】
• event とメッセージング 【きっと、良い
パターン】