Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CQRS+ES の力を使って効果を感じる / Feel the effects of usi...
Search
shiro seike
PRO
December 21, 2024
Programming
0
370
CQRS+ES の力を使って効果を感じる / Feel the effects of using the power of CQRS+ES
CQRS+ESカンファレンス
https://cqrs-es-con.connpass.com/event/333271
shiro seike
PRO
December 21, 2024
Tweet
Share
More Decks by shiro seike
See All by shiro seike
歴史から学ぶ「Why PHP?」 PHPを書く理由を改めて理解する / Learning from History: “Why PHP?” Rediscovering the Reasons for Writing PHP
seike460
PRO
0
170
Team-First Serverless Platform Engineering Approach to PHP Applications with Laravel and Bref
seike460
PRO
0
31
なぜ適用するか、移行して理解するClean Architecture 〜構造を超えて設計を継承する〜 / Why Apply, Migrate and Understand Clean Architecture - Inherit Design Beyond Structure
seike460
PRO
3
920
生成AIコーディングとの向き合い方、AIと共創するという考え方 / How to deal with generative AI coding and the concept of co-creating with AI
seike460
PRO
1
450
地方のPHPerもクラウドを使う理由 ~コストの最適化とチームに向き合う~ / Why even local PHPers use the cloud ~optimize costs and face the team
seike460
PRO
0
80
OpenTelemetryで始めるベンダーフリーなobservability / Vendor-free observability starting with OpenTelemetry
seike460
PRO
0
220
AIコーディングの本質は“コード“ではなく“構造“だった / The essence of AI coding is not “code” but "structure
seike460
PRO
2
1.3k
OpenTelemetryを活用したObservability入門 / Introduction to Observability with OpenTelemetry
seike460
PRO
1
890
Amazon Q Developer Proで効率化するAPI開発入門
seike460
PRO
0
450
Other Decks in Programming
See All in Programming
TypeScript 5.9 で使えるようになった import defer でパフォーマンス最適化を実現する
bicstone
1
500
最新のDirectX12で使えるレイトレ周りの機能追加について
projectasura
0
300
AIエージェントでのJava開発がはかどるMCPをAIを使って開発してみた / java mcp for jjug
kishida
4
800
レイトレZ世代に捧ぐ、今からレイトレを始めるための小径
ichi_raven
0
470
OSS開発者の憂鬱
yusukebe
14
11k
dnx で実行できるコマンド、作ってみました
tomohisa
0
110
Level up your Gemini CLI - D&D Style!
palladius
1
130
開発生産性が組織文化になるまでの軌跡
tonegawa07
0
190
Flutterチームから作る組織の越境文化
findy_eventslides
0
600
仕様がそのままテストになる!Javaで始める振る舞い駆動開発
ohmori_yusuke
8
4.7k
DartASTとその活用
sotaatos
2
150
Building AI Agents with TypeScript #TSKaigiHokuriku
izumin5210
5
1.1k
Featured
See All Featured
Designing for humans not robots
tammielis
254
26k
For a Future-Friendly Web
brad_frost
180
10k
Navigating Team Friction
lara
190
16k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Optimizing for Happiness
mojombo
379
70k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.2k
Practical Orchestrator
shlominoach
190
11k
Code Reviewing Like a Champion
maltzj
527
40k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
118
20k
Building Applications with DynamoDB
mza
96
6.8k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
Transcript
©Fusic Co., Ltd. 1 CQRS+ES ͷྗΛͬͯΈͯޮՌΛײ じ Δ 2024.12.21 @seike460
CQRS+ESΧϯϑΝϨϯε
©Fusic Co., Ltd. 2 ਗ਼Ո ࢙ @seike460 AWS Community Builder
Serverless AWS User Group Leaders Community Organizer ɹFukuoka.php ɹFukuoka.go ɹJAWS-UG Fukuoka ɹServerless Meetup Fukuoka ɹCloudflare Meetup Fukuoka ɹJP_Stripes Fukuoka ࣗݾհ ͡Ίʹ גࣜձࣾFusic ϓϦϯγύϧΤϯδχΞ/ΤόϯδΣϦετ
©Fusic Co., Ltd. 3 CONTENTS ࣍ 1. CQRS + ES
2. ࣮ԋͷߏ 3. σϞ 4. ·ͱΊ
©Fusic Co., Ltd. 4 CQRS + ES 1
©Fusic Co., Ltd. 5 CQRS + Event Sourcing CQRSͱ Event
Sourcingͷϓϩͷํ͍Βͬ͠Ό͍·͕͢ɺ ͦ͏Ͱͳ͍ํ͍Βͬ͠ΌΔͱࢥ͍·͢ ͜ΕΒͷΞʔΩςΫνϟʮঢ়ଶཧʯͱʮཤྺཧʯΛ͠ ಛʹॻ͖ࠐΈͱಡΈऔΓͷׂΛ໌֬ʹ͚Δͷ͕ಛ
©Fusic Co., Ltd. 6 େنΞʔΩςΫνϟͱ͍͏Πϝʔδ ࣮ࡍ2018ʹग़ձ͍ͬͯΔͷͰ͕͢ɺ ͜ͷ͕࣌ࢥͬͨͷ͕ʮେنͳΞʔΩςΫνϟಛԽʯͱ͍͏Πϝʔδ ʮͷਓੜͰ৮Δ͜ͱͳͦ͞͏ʯͱࢥͬͨͷ͕ਖ਼ͳͱ͜ΖͰ͢
©Fusic Co., Ltd. 7 PHPͰΞΫλʔϞσϧ ҰํͰઌPHPΧϯϑΝϨϯεԭೄ2024ʹͯytake͞Μͱͯ͠ ڧʹিܸΛड͚ͯɺڵຯΛ࣋ͪ·ͨ͠
©Fusic Co., Ltd. 8 AWS LambdaΛத৺ʹݕূͯ͠ΈΔ Ͱʮཧͱͯ͠ྑͦ͞͏͚ͩͲɺϓϩδΣΫτͰຊʹ͑Δͷ͔ʁʯ ʮϝϦοτΛͪΌΜͱମݧͯ͠ಋೖ͍ͨ͠ʯ ͦ͜ͰࠓճҰൠతʹؾܰʹࢼ͍͢͠AWS Lambdaͷ۩ମతͳߏΛྫʹɺ
ͦͷϝϦοτΛ࣮ԋɺମݧͯ͠ΈΑ͏ͱࢥ͍·͢
©Fusic Co., Ltd. 9 ߏ 2
©Fusic Co., Ltd. 10 AWS Lambda + DynamoDBͷγϯϓϧͳҰཡ - ৄࡉ
©Fusic Co., Ltd. 11 AWS Lambda + DynamoDBͷγϯϓϧͳҰཡ - ৄࡉ
ͳΜͱઌఔɺ͔ͱ͡ΎΜ͞Μ͔ΒͷະདྷͷϑΟʔυόοΫ͕͋Γ·ͨ͠ʂ Ұ୴ͬͯΈͨͷͱͯ͠ѻ͍ͬͯͩ͘͞ʂ
©Fusic Co., Ltd. 12 AWS Lambda + DynamoDBͷγϯϓϧͳҰཡ - ৄࡉ
ᶃAPIʹରͯ͠σʔλొ
©Fusic Co., Ltd. 13 AWS Lambda + DynamoDBͷγϯϓϧͳҰཡ - ৄࡉ
ᶃAPIʹରͯ͠σʔλొ ᶄAWS Lambda͕EventTableʹσʔλొ
©Fusic Co., Ltd. 14 AWS Lambda + DynamoDBͷγϯϓϧͳҰཡ - ৄࡉ
ᶃAPIʹରͯ͠σʔλొ ᶄAWS Lambda͕EventTableʹσʔλొ ᶅDynamoDB DataStreame͕AWS LambdaΛىಈ
©Fusic Co., Ltd. 15 AWS Lambda + DynamoDBͷγϯϓϧͳҰཡ - ৄࡉ
ᶃAPIʹରͯ͠σʔλొ ᶄAWS Lambda͕EventTableʹσʔλొ ᶅDynamoDB DataStreame͕AWS LambdaΛىಈ ᶆUserSummaryͱUserDetailͷಡΈऔΓ༻ʹׂ
©Fusic Co., Ltd. 16 AWS Lambda + DynamoDBͷγϯϓϧͳҰཡ - ৄࡉ
ᶃAPIʹରͯ͠σʔλొ ᶄAWS Lambda͕EventTableʹσʔλొ ᶅDynamoDB DataStreame͕AWS LambdaΛىಈ ᶆUserSummaryͱUserDetailͷಡΈऔΓ༻ʹׂ ᶇͦΕͧΕͷAPI͕ಡΈऔΓσʔλΛఏڙ
©Fusic Co., Ltd. 17 EC2͔ΒlocustʢෛՙπʔϧʣΛىಈͯ͠ෛՙΛ͔͚Δ
©Fusic Co., Ltd. 18 σϞ 3
©Fusic Co., Ltd. 19 ·ͱΊ 4
©Fusic Co., Ltd. 20 ·ͱΊ CQRS + ESগ͠ෑډ͕ߴ͍Α͏ͳײ͕͕֮͋ͬͨɺ༗༻ͳͷͰ͋Δ͜ͱຊͷΧϯϑΝϨϯεͰূ໌͞Εͨ Point 01
AWSEventΛѻ͏ҝͷΈ͕͋ΔͷͰαοΫϦͱಋೖʹਐΊΔɺ͚ͲιʔείʔυଆͰͰ͞Βʹྑ͘ͳΓͦ͏ Point 02 ύϑΥʔϚϯεΛग़དྷΔͷͰɺۙʹ͑Δྫͱͯ͑͠Δ͔ Point 03 GitHubʹެ։͍ͯ͠ΔͷͰɺͥͻͬͯΈ·͠ΐ͏ʂ ͔ͱ͡ΎΜ͞ΜͷεϥΠυΛݟͳ͕ΒKJํࣜʹͯ͠Έ·͠ΐ͏ʂ Point 04
©Fusic Co., Ltd. 21 Thank You We are Hiring! https://recruit.fusic.co.jp/
͝ਗ਼ௌ͍͖ͨͩ͋Γ͕ͱ͏͍͟͝·ͨ͠