Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Sample code for IDDD by Vaughn Vernon

Notifications You must be signed in to change notification settings

yeowgit/iddd-sample

Open more actions menu
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sample code for IDDD Book by Vaughn Vernon

This is a .NET Sample Project to accompany Event Sourcing materials from the book by Vaughn Vernon: Implementing Domain-Driven Design.

Event Sourcing pattern was introduced to DDD world by Gregory Young. A+ES appendix in IDDD book and this sample are mainly based on his work in pushing the state of art in this field.

Contents

This project includes a sample domain implemented with the event sourcing pattern. Multiple persistence options are provided:

  • Microsoft SQL Server
  • MySQL
  • File storage
  • Windows Azure Blob Storage

Usage

Start by downloading sources (ZIP, Visual Studio) or by cloning a git repository:

$ git clone git://github.com/Lokad/lokad-iddd-sample.git

Then, open solution in Visual Studio (MonoDevelop might also work) and run the project. The project is auto-configured to use file storage by default, and cleans it on every start.

You should see something like:

Command: Create customer-12 named 'Lokad' with Eur
  customer-12 r0 Event: Customer Lokad created with Eur
  customer-12 r0 Event: Added 'Welcome bonus' 15 EUR | Tx 1 => 15 EUR
  Completed in 145 ms
Command: Rename customer-12 to 'Lokad SAS'
  customer-12 r1 Event: Customer renamed from 'Lokad' to 'Lokad SAS'
  Completed in 27 ms
Command: Charge 20 EUR - 'Forecasting'
  customer-12 r2 Event: Charged 'Forecasting' 20 EUR | Tx 2 => -5 EUR
  Completed in 16 ms

Then, you can dive into the code by starting with Domain folder in this solution. There also is a UnitTests project, which contains unit tests for the domain (in form of Given-When-Then specifications)

You can also try plugging in other types of event stores. Each event store requires connection string and will auto-create all required resources automatically.

Want More?

If you want more details, here's what you can do next:

If you have any questions, please feel free to ask the contributors.

Authors and Contributors

  • Vaughn Vernon, Book author and reviewer.
  • Rinat Abdullin, A+ES text and this sample project. Tech Leader at Lokad, Big Data Analytics for Retail.
  • Gregory Young, theory and practice of introducing Event Sourcing to Domain-Driven Design.

This sample is based hugely on inspiration and support provided by following outstanding gentlemen:

As for bugs in the code and typos in the accompanying texts, please feel free to attribute them to Rinat Abdullin. Reporting them (e.g. by dropping me a tweet or an email) would be extra cool :)

About

Sample code for IDDD by Vaughn Vernon

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 100.0%
Morty Proxy This is a proxified and sanitized view of the page, visit original site.