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
Storing data as a sequence of events (RubyConfAt)
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Łukasz Reszke
May 31, 2026
Programming
31
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Storing data as a sequence of events (RubyConfAt)
Łukasz Reszke
May 31, 2026
Other Decks in Programming
See All in Programming
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.7k
コードで差別化できない時代の ソフトウェアエンジニアリング / Software Engineering in an Era Where Code Doesn’t Differentiate
kishida
2
200
When benchmarks go bad - what I learned from measuring performance wrong
hollycummins
0
240
React Native에 현대적인 빌드 도구 더하기: Rollipop 구현기
leegeunhyeok
0
140
[2026-10-09]一枚の布で作らなくてもいい。 信頼性は「パッチワーク」で紡がれる~既存の運用と新しい可能性をつなぎ合わせてきたCREの話~
tosite
0
110
GraphQL の onError と Nullability のこれから
quramy
0
180
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
340
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
4
3.2k
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
自作Discord音声botをLambda MicroVMsに移行した話 / Migrating My Discord Voice Bot to Lambda MicroVMs
akihisaikeda
0
150
JIS keyboard support in Omarchy
lef237
0
160
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
35
17k
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
529
40k
Claude Code のすすめ
schroneko
67
230k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3.5k
Agile that works and the tools we love
rasmusluckow
331
22k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
450
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
440
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
610
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
Producing Creativity
orderedlist
PRO
348
41k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
580
Transcript
Helping Rails apps since 2007 a boutique consultancy specializing in
Ruby expertise
Relational Database
CRUD
Change = State Overwrite
Admit.
Information is lost
WHAT IT IS NOW
HOW WE GOT THERE
HOW WE GOT THERE
Alternative for saving data as snapshot
Storing state as sequence of facts
Facts == Events
Event Sourcing
ONE THING TO REMEMBER FROM THIS PRESENTATION
Event Sourcing is just another persistence technique.
Event
Events are kept in Event Store
Append only log
Immutable
Event <-> Stream
None
None
None
None
None
None
None
None
None
None
None
None
None
HOW WE GOT THERE?
None
None
None
One to Many
Load the state Make decision Publish an event (new state)
Consolidate events into streams to answer interesting business questions
None
None
None
None
None
None
None
None
None
None
None
Event Store… DB?
Rails Event Store Backed up and maintained by
Started in 2015
Based on Database that you already use
Two Tables Events and Events in streams
Comes with migrations
Comes with event browser
Case - Warehouse
Shipment
Packing
Mistakes happen
Information?
shipment.status == :packed
So it’ll be billed for packing…
So it’ll be billed for packing… Once
Demo
Benefits - State change history recorded as sequence of events
- ZERO DATA LOSS - Auditability - Reconstructing state - Makes debugging easier
Check it out at railseventstore.org
THANK YOU! Łukasz Reszke