Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
DDDモデリング勉強会 #9
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
株式会社Jurabi
October 01, 2024
Programming
41
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
DDDモデリング勉強会 #9
DDDモデリング勉強会#9 の発表資料
ドメインイベント、アグリゲーションルート、結果整合性に焦点を当てて、モデルを作成するハンズオン です。
株式会社Jurabi
October 01, 2024
More Decks by 株式会社Jurabi
See All by 株式会社Jurabi
DDDモデリング勉強会 #6
jurabi
0
75
DDDモデリング勉強会 #7
jurabi
0
28
Deep Learning勉強会 逆伝播の仕組み
jurabi
0
55
RDBの世界をぬりかえていくモデルグラフDB〜truncus graphによるモデルファースト開発〜
jurabi
0
440
Other Decks in Programming
See All in Programming
baseline으로 마이그레이션, 리팩토링 안전하게 맡기기
fornewid
1
970
Spec-Driven Development - Why Vaadin Is the Perfect Fit
simas
PRO
0
240
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
4
1.5k
Goコンパイラを作ってGoをもっと理解する / Build a Go compiler to better understand Go
ikura_hamu
0
130
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
370
S3 TablesのIcebergデータに、AIエージェントからアクセスしてみた / 20261016developersio2026joetsu-accessing-iceberg-in-s3tables-via-agent
kasacchiful
PRO
0
300
Vapor Mode でアクセシビリティは 壊れないか検証した話
fuqda
1
330
우리의 Nitro Modules는 당신의 Turbo Modules보다 아름답다
l2hyunwoo
0
260
Будущее локальных LLM – Алексей Голобурдин, PythoNN
sobolevn
0
120
クラウドエージェントは、 何がそんなに便利なのか / what makes cloud agents so useful
rkaga
5
810
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
420
プロジェクトコードをキレイキレイしよう!暗黙的な参照を読み解く静的解析
ostk0069
0
210
Featured
See All Featured
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.7k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
630
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
60k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
The SEO Collaboration Effect
kristinabergwall1
1
620
The SEO identity crisis: Don't let AI make you average
varn
0
630
What the history of the web can teach us about the future of AI
inesmontani
PRO
3
800
Un-Boring Meetings
codingconduct
0
490
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
380
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.5k
ラッコキーワード サービス紹介資料
rakko
5
5.8M
Deep Space Network (abreviated)
tonyrice
0
410
Transcript
DDDモデリング勉強会 第9回 2016/9/2 (金) 19:00 – 20:30
アジェンダ • ドメインイベント、アグリゲーションルート、結果整合性 • モデリングのお題 • モデリング • 総括 2
ドメインイベント、アグリゲーションルート、結果整合性 1トランザクションのシステムの例 受注から在庫確認、注文確定、在庫引当など、全部1トランザク ションで整合性を保って処理 3 <Root> 販売管理 在庫管理 同一トランザクションで 処理する範囲
ドメインイベント、アグリゲーションルート、結果整合性 システムが分散する例 • ドメインイベントでアグリゲーションルート間の連携をとる • 完全な一貫性を実現することは困難 4 <Root> 販売管理 <Root>
在庫管理 別々のトランザクションで処理 複数のアグリゲーションルート
ドメインイベント、アグリゲーションルート、結果整合性 ドメインイベントとは • ドメインエキスパートが気に掛ける何かの出来事 • ドメイン内で発生する何かの出来事 • 「・・・・するときに、」 • 「もしそうなったら、・・・」
• 「・・・の場合は、通知してほしい」 • 「・・・が発生した場合、・・」 • 「もし、こうなったら、・・・・」 5
ドメインイベント、アグリゲーションルート、結果整合性 ドメインイベントの特徴 • ドメイン全体にまたがる概念 • 単一の境界づけられたコンテキストで閉じない • 発生した出来事 既に発生した出来事を表す(不変) (例)
実行コマンド BacklogItem#commitTo(Sprint s) 発生イベント BacklogItemCommitted コミットされた(成功した)ことを示している 6
ドメインイベント、アグリゲーションルート、結果整合性 一貫性がなくても業務は成り立つ • 販売管理側の在庫数は、いわゆるキャッシュ • それぞれの在庫数は常に一致しているわけではない • 受注(1個) 販売管理:29個 在庫管理:30個
• 受注(2個) 販売管理:27個 在庫管理:30個 • 在庫引当(3個) 販売管理:27個 在庫管理:27個 • 在庫数更新 販売管理:27個 在庫管理:27個 7 <Root> 販売管理 <Root> 在庫管理 在庫数:30個 在庫数:30個
モデリングのお題 ハンバーガーの注文を管理するシステム • 全店舗、倉庫を一括管理するアーキテクチャ 8
モデリングのお題 9
モデリングのお題 10
モデリングのお題 チェーンの成長にともない問題発生! 11 店舗、倉庫が増加 注文、在庫の引き当てが大量に発生 レコードのロックにより、 一定数以上の注文を受け付けられなくなった
モデリングのお題 課題 12 ドメインイベント、結果整合性を使って、問題が解決可 能となるようにドメインモデルを修正してください 業務要件、制限 • 商品の製造中に材料の在庫切れ等が発生した場合は、製造 途中の商品は廃棄してよいこととします •
物流にかかる時間、コストは0とし、発注をまとめる必要 はありません
13 総括