Event Sourcing & CQRS

Today, Tomer Gabel gave a talk to BigPanda’s RnD with the title: “An Abridged Guide to Event Sourcing”. This eye-opening presentation definitely deserves a more in-depth blog post, but I figured it might be useful to summarize my takeaways from it.

Disclaimer: the ideas and takeaways mentioned reflect my understandings of the lecture, and not necessarily the speaker’s original intents.

Terminology

  • Event Sourcing - each entity in our DB is a stream of immutable events
  • CQRS - separation of writes (append events) and reads (adjustable projections)

Who told you you’re allowed to destroy data? – Greg Young

Lessons Learned

  • CRUD shouldn’t be a premise. Strong consistency isn’t always required
  • Storage costs is an operational concern that’s worth discussion
  • Event Streams + CQRS (done right) has several pros like decoupled reads/writes and built-in auditing which helps with debugging
  • Using Snapshots is a great way to improve performance

Resources

Further reading, if I somehow managed to intrigue you

Interesting

comments powered by Disqus