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
Go言語でCQRS+ESの アプリを作ってみた
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Kizuku
March 14, 2025
700
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Go言語でCQRS+ESの アプリを作ってみた
Kizuku
March 14, 2025
More Decks by Kizuku
See All by Kizuku
学生こそ ISUCONに出よう!
kizuku
1
120
WebTransportの パッケージを作った話
kizuku
0
110
きのこカンファレンス開催予告! - エンジニアがこの先生きのこるには -
kizuku
0
190
WebSocketで バイナリを扱う方法 + OSTやりたくない?
kizuku
1
73
WebTransportは未来の技術?
kizuku
2
2.3k
Featured
See All Featured
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
190
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
How STYLIGHT went responsive
nonsquared
100
6.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
Unsuck your backbone
ammeep
672
58k
Abbi's Birthday
coloredviolet
2
7.9k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
300
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
Evolving SEO for Evolving Search Engines
ryanjones
0
210
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
210
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
350
Transcript
Go言語でCQRS+ESの アプリを作ってみた イベントソーシング・CQRS勉強会 #1 Kizuku
Kizuku 九州工業大学 学部4年 →先日、上京 好きな言語: Go X: @Kizuku_tech 趣味: イベント・カンファレンス
参加/運営 自己紹介
今年の正月に CQRS+ESでアプリを作った
そこまで踏み込んだ 内容ではないです 🙇♂️
話すこと 実装ベースの説明 Goの実装で便利だったライブラリ Goの実装で楽だったこと/辛かったこと 話さないこと アプリの詳細 詳しい話(是非懇親会で!)
イベントストーミング Figjamを用いた 参考:イベントストーミング入門(なるセミ) https://youtu.be/jC9lE4YqgyY
技術構成 EventStore DynamoDB ReadModel TiDB GraphQL Next.js
使用ライブラリ event-store-adapter-go https://github.com/j5ik2o/event-store-adapter-go アクターシステムを用いずに Event Sourcingを行うライブラリ https://speakerdeck.com/j5ik2o/akutasisutemunilai -razuevent-sourcingsurufang-fa-nituite
Goの実装で楽だったこと Protocol Buffersとの親和性が高い lambdaの関連ライブラリが多く使いやすい
データのシリアライズ Protocol Buffersを用いてシリアライズ Goもprotobufも開発元が同じで親和性が高 い oneofフィールドがイベントのデータの取り 扱いと相性がいい
protobuf
データのシリアライズ bufを用いてコード生成 protoc-gen-goのプラグインを使用
Goの実装で辛かったこと 他言語と比べるとパターンマッチがやや貧弱 やや冗長な書き方が多くコードが長くなりが ち
Goでのパターンマッチング type switchで動的な型に応じた処理ができる
None
Goでのパターンマッチング Rustなどの言語のパターンマッチ機能と比べ るとGoはシンプルでわかりやすい 厳密性はないため、抜け漏れは発生しやすい
まとめ CQRS+ES 難易度が高いように見えるが、(簡 単な実装であれば)案外手は動く 難しい部分に関してはいろんな人がライブラ リを作ってくれている 好きな言語でトライしてみる!!