Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Cqrs, Event Sourcing


Published on

Slides from my CQRS talk at DDD Belfast

Published in: Technology, Business
  • Login to see the comments

Cqrs, Event Sourcing

  1. 1. CQRS, Event Sourcing<br />Simplicity / Complexity<br />AshicMahtab<br />
  2. 2.
  3. 3. UI<br />DB Schema<br />Validation<br />DTO Transformation<br />Controller<br />DTO Transformation<br />Service<br />Repository<br />“Domain”<br />IoC Containers<br />Projection<br />Caching<br />Lazy Loading<br />Leaky “Pointless” Abstractions<br />
  4. 4. Simple, right?<br />
  5. 5. I Hold Data(Just the way you want it)<br />I Did Stuff<br />Gimme Some Data<br />I Do Stuff<br />Please Do Stuff<br />Application<br />
  6. 6. ReadModel<br />I Did Stuff<br />Gimme Some Data<br />Domain<br />Please Do Stuff<br />Application<br />
  7. 7. Event Bus<br />I Hold Data(Just the way you want it)<br />Domain<br />I Did Stuff<br />Gimme Some Data<br />Read Model<br />I Do Stuff<br />Please Do Stuff<br />Application<br />Command Service<br />
  8. 8. Testing<br />When_doing_tranche_payment_with…<br />What about changes? Does “refactoring” require you to change tests? That’s not refactoring.<br />Is the “BDD” output really human readable?<br />
  9. 9. Testing with Events<br />Given:-An account with account holder named “John”, account id=1243, account type=Silver-Account 1243 is debited £200<br />When a request is made to withdraw £300 from account 1243<br />The request should fail stating “Account limit will be exceeded” as the reason. [pass]<br />
  10. 10. Adding new features to existing application<br />
  11. 11. Performance<br />
  12. 12. Resources<br /><br />Jonathan Oliver’s blog<br />RinatAbdullin’s blog<br />Ncqrs (github)<br />Google groups for CQRS / DDDD and Ncqrs<br />