For now, I have a working structure for command handlers, eventsourced domain model and one eventhandler for updating a readmodel.
Dive into the /src folder for the first bit. I've written helping notes and tips in the major project root folders.
I'm playing a bit around with these technologies for now:
- Marten (a really clever document store abstraction over Postgres). It's used for storing the eventstream from the domain events
- Kafka for distributing events in a distributed way. My local Kafka is running on docker using the wurstmeister/kafka image. Please know that I am completely new to Kafka, so this is a very preliminar implementation.
- Lamar (the new beginning of StructureMap) for IoC
I'm still working out the structure of this project, but eventually, I'm hoping to have a good starter template with some pluggable infrastructure for a DDD application (a bounded context)
For now, I'm definately working on:
- Polishing the last bits
- An example of a query handler infrastructure using the readmodel (the Q side in CQRS)
- Tests, tests, tests
If you've been looking a bit at the code, you've probably stumbled upon a nice little champagne domain! The champagne comes from a personal hobby of mine - and from applying it at a startup working on champagne experiences (the startup failed, but the ideas survived).
I would love some help along the way - feel free to reach out to me here @GitHub or catch me @ [email protected].
Cheers! Lars