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
Storing data as a sequence of events (RubyConfAt)
Search
Łukasz Reszke
May 31, 2026
Programming
17
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
肥大化するレガシーコードに立ち向かうためのインターフェース分離と依存の逆転 / JJUG CCC 2026 Spring
hirokunimaeta
0
520
プロパティの順序で型推論が壊れる!? TypeScript6.0の修正からContext-Sensitivityの仕組みを追う
bicstone
2
1.3k
AI時代の仕事技芸論 — ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ
kuranuki
1
640
AIとRubyの静的型付け
ukin0k0
0
550
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
480
CSC307 Lecture 17
javiergs
PRO
0
320
Spec Driven Development | AI Summit Lisbon
danielsogl
PRO
0
170
net-httpのHTTP/2対応について
naruse
0
460
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
120
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
240
Swiftのレキシカルスコープ管理
kntkymt
0
220
3Dシーンの圧縮
fadis
1
680
Featured
See All Featured
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
We Have a Design System, Now What?
morganepeng
55
8.2k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
Skip the Path - Find Your Career Trail
mkilby
1
140
Designing Powerful Visuals for Engaging Learning
tmiket
1
400
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
Discover your Explorer Soul
emna__ayadi
2
1.1k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
720
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
140
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.7k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Designing for Performance
lara
611
70k
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