Europe Virtual ALT.NET - EventStore v3
Upcoming SlideShare
Loading in...5

Like this? Share it with your network


Europe Virtual ALT.NET - EventStore v3



The slides from the Europe Virtual ALT.NET Presentation on the CQRS EventStore v3:

The slides from the Europe Virtual ALT.NET Presentation on the CQRS EventStore v3:



Total Views
Views on SlideShare
Embed Views



2 Embeds 2 1 1



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

Europe Virtual ALT.NET - EventStore v3 Presentation Transcript

  • 1. Europe Virtual ALT.NET, 25 October 2011 Jonathan OliverUsing and Abusing
  • 2.  Founder: SmartyStreets ( Founder, co-host: Distributed Podcast Committer, NServiceBus & Autofac Project owner, CQRS EventStore
  • 3.  Finances the EventStore project Started in 2006 (as Qualified Address) All your street address are belong to us My personal guinea pig Fully geo-distributed
  • 4.  Messaging SOA DDD CQRS (strict definition) Event Sourcing CQRS Architecture
  • 5.  Hand-crafted SQL and stored procedures Canonical data model Application integration via shared database Generated DAL
  • 6.  Temporal database design Messaging Breakthrough—Putting DBs in their place Greg Young—InfoQ and DevTeach Videos
  • 7.  Capturing business intent Rebuild state from events Rewind, pause, fast-forward Build alternate models Immutable data is crazy scalable Complete audit
  • 8.  It’s not a framework—I hate frameworks It doesn’t permeate your code You can swap it out and/or build your own Nothing existed at the time—March 2009 Implementation reflects the developer
  • 9.  Goal: technology is an implementation detail Transactions typically exist in SQL land Lots of interesting alternatives appearing Momentum around NoSQL increasing Two-phase commit virtually non-existent
  • 10.  Absorbing transactions Cross-resource transactional consistency Commits Exposing a robust, easy-to-use model
  • 11. “Repository” App / Service Layer Dispatcher / Bus EventStore“ISession” commit Event Stream commit“ISessionFactory” Event Store Pipeline Hooks“NHibernate Magic” Persistence Engine SerializerDisk, DB, Memory, etc. Durable Storage (Snapshotting and some advanced capabilities have been ommitted)
  • 12. Transaction #1 Message Handler EventStore Async Dispatch Scheduler commit ack•Optimistic Concurrency• Idempotency/De-duplication DiskTransaction #2 Dispatch Messaging Wire Protocol Scheduler Technology Mark as dispatchedTransaction #3 EventStore Disk
  • 13.  Streams vs. Aggregates Usage Example Implementation
  • 14.  Pipes and filters Filter out, modify, up-convert Select, Precommit, and Postcommit Implementation
  • 15.  Synchronous vs. Asynchronous Any bus, broker, or messaging technology Any serialization mechanism Production example Implementation
  • 16.  XML, JSON/BSON, Protocol Buffers, Thrift, MessagePack, Avro Serialization pipeline Implementation
  • 17.  The primary storage engine Easy to understand Great management tools Proven, mature implementation 10+ flavors (SQL Server, MySQL, SQLite, etc.) Code
  • 18.  Easy alternative for .NET Great commercial support Great management tools Responsive community + Oren/Ayende Gotcha: 2PC and repeatable reads
  • 19.  Highly robust engine Established as a primary NoSQL engine Lots of management tools Code
  • 20.  CouchDB Amazon Azure Oracle Redis Cassandra .NET System.IO APIs
  • 21.  Completely optional Avoiding additional dependencies Can use StructureMap, Autofac, Ninject, etc.
  • 22.  Spike code that worked too well Simple, opinionated “DDDD” framework Purposefully minimalistic “Essence” to be merged into EventStore
  • 23. Blog: blog.jonathanoliver.comTwitter jonathan_oliverGitHub