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

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 Europe Virtual ALT.NET - EventStore v3 Presentation Transcript

  • Europe Virtual ALT.NET, 25 October 2011 Jonathan OliverUsing and Abusing
  •  Founder: SmartyStreets ( Founder, co-host: Distributed Podcast Committer, NServiceBus & Autofac Project owner, CQRS EventStore
  •  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
  •  Messaging SOA DDD CQRS (strict definition) Event Sourcing CQRS Architecture
  •  Hand-crafted SQL and stored procedures Canonical data model Application integration via shared database Generated DAL
  •  Temporal database design Messaging Breakthrough—Putting DBs in their place Greg Young—InfoQ and DevTeach Videos
  •  Capturing business intent Rebuild state from events Rewind, pause, fast-forward Build alternate models Immutable data is crazy scalable Complete audit
  •  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
  •  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
  •  Absorbing transactions Cross-resource transactional consistency Commits Exposing a robust, easy-to-use model
  • “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)
  • 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
  •  Streams vs. Aggregates Usage Example Implementation
  •  Pipes and filters Filter out, modify, up-convert Select, Precommit, and Postcommit Implementation
  •  Synchronous vs. Asynchronous Any bus, broker, or messaging technology Any serialization mechanism Production example Implementation
  •  XML, JSON/BSON, Protocol Buffers, Thrift, MessagePack, Avro Serialization pipeline Implementation
  •  The primary storage engine Easy to understand Great management tools Proven, mature implementation 10+ flavors (SQL Server, MySQL, SQLite, etc.) Code
  •  Easy alternative for .NET Great commercial support Great management tools Responsive community + Oren/Ayende Gotcha: 2PC and repeatable reads
  •  Highly robust engine Established as a primary NoSQL engine Lots of management tools Code
  •  CouchDB Amazon Azure Oracle Redis Cassandra .NET System.IO APIs
  •  Completely optional Avoiding additional dependencies Can use StructureMap, Autofac, Ninject, etc.
  •  Spike code that worked too well Simple, opinionated “DDDD” framework Purposefully minimalistic “Essence” to be merged into EventStore
  • Blog: blog.jonathanoliver.comTwitter jonathan_oliverGitHub