pcharbon
AshCommanded - a declarative CQRS / ES extension for Ash
This is a new extension for the Ash framework that lets you use the Commanded library in a more declarative manner and removes most of the repetive ceremony while using the Commanded libraru. By combining the power of the Spark DSL library and the Domain/Resources concepts of Ash, this extension will generate for you at runtime all you need to implement a CQRS/ES system. Your commanded Aggregates, Events. Commands, etc will still all be there.
AshCommanded is an Elixir library that provides Command Query Responsibility Segregation (CQRS) and Event-Sourcing (ES) patterns for the Ash Framework. It extends Ash resources with a Commanded DSL that enables defining commands, events, and projections. The extension relies on the excellent Commanded library. The Commanded Guides section explains the different concepts better than I could.
Feedback always very welcomed!
First Post!
johnsseruwagi
Thank you so much for this great library, am currently learning CQRS/ES following the book real world event sourcing in elixir, am primarily a Ash framework developer, so I was looking for an extension for proper ES in Ash and then found this,
However on your Where are the process mangers? Section, you said that you recommend using Reactor for this kind of ochestration and I honestly agree with you.
However the commanded Process Manager behavior gives us some out of the box implementations such as the starting, continuation and stoping coordination and I think it works mechanically well with the router.
My point is, to someone who has not implemented the saga pattern on their own, it would be difficult to replace the commanded Process Manager with reactor.
Can you please provide an extensive example of how to do that with Ash Commanded.
And also if you can provide a fully CQRS/ES application built with ash_commanded this would do so great







