Event Sourcing
Persist our domain model by persisting just the events
instead of the current state
Slide 3
Slide 3 text
Append Only Model
When you update or delete data you lose information
Events are the result of decisions, they should be immutable
Slide 4
Slide 4 text
Advantages
No loss of information
One source of true
Go back in time
Free audit logs
Immutable data
« Easy »migration
Replay feature
Slide 5
Slide 5 text
But How to Store Events?
Slide 6
Slide 6 text
Event Store
The open-source, functional database with Complex Event
Processing in JavaScript.
Slide 7
Slide 7 text
No Table but Event Streams
No giant stream
Partitions by aggregate
Million of streams is normal
5000 - 10000 events before any snapshot
Slide 8
Slide 8 text
Event Store Operations
Append to a stream
Read all or part of a stream
Subscribe to a stream
Slide 9
Slide 9 text
What About Queries?
You don’t query on events but on appropriate read model
There is no best storage AKA all database sucks
One model can’t be good for all scenarios
Slide 10
Slide 10 text
Read Models
Events
Graph Dd
Document Db
SQL Db
Slide 11
Slide 11 text
Clients
HTTP
Based on Atom feed
HTTP content type negotiation
HTTP persistent connection
HTTP pipeline
HTTP cache
TCP
.NET, Ruby, Java
Really fast communication protocol