pcharbon

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!

https://github.com/accountex-org/ash_commanded

Most Liked

suranyami

suranyami

johnsseruwagi

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

pcharbon

pcharbon

Sorry about the not compiling. It hss been fixed by someone already in a PR and I forgot to update the version. I will do that tomorrow as soon as possible.

Regarding providing an example, I will be happy to write one and add it to the repo as well. I am also easily reacheable online at any time on Discord under the same username. Feel free to contact me for any questions or discussions on your project. I will be happy to help.

Pascal

Where Next?

Popular in Announcing Top

wmnnd
Hi there, for my project DBLSQD, I needed a file storage solution that is a bit more flexible than Arc. Because I thought others might f...
New
tmbb
I’ve published the first version of my Makeup library. It’s a syntax highlighter for Elixir in the spirit of Pygments, Currently it highl...
New
mspanc
I am pleased to announce an initial release of the Membrane Framework - an Elixir-based framework with special focus on processing multim...
New
dbern
I’m excited to announce that TaxJar has developed and open-sourced DateTimeParser. We developed it because we found a need to parse user ...
New
bryanjos
Hi, I wanted share a small library we at Revelry Labs made for rendering react components from the server side. There are instructions fo...
New
mbuhot
Leverage Open Api 3.0 (Swagger) to document, test, validate and explore your Plug and Phoenix APIs. Generate and serve a JSON Open API ...
New
Flo0807
Hello everyone! I am excited to share our heart project Backpex with you. After building several Phoenix applications, we realized that...
New
hpopp
After just over two years in development, this latest version of Pigeon is what I finally consider done in regards to my original vision ...
New
marcuslankenau
I feel kind of stuck with the absence of a proper xml library for Elixir. Currently I use SweetXML which was ok for me more or less to pa...
New
kevinlang
Hey all, We have made an Ecto3 Adapter for SQLite3, ecto_sqlite3! We have successfully on-boarded the full suite of integration tests (...
New

Other popular topics Top

marius95
Hello everyone, I try to use an Javascript Event Handler in my root.html.leex file. Therefore I created a function in the app.js file: ...
New
JakeBecker
TL;DR: I’ve just released an implementation of Microsoft’s IDE-independent Language Server Protocol for Elixir. It adds language support ...
1144 53690 245
New
chrismccord
This release brings a number of exciting features, including integration with the new Phoenix LiveDashboard and Phoenix LiveView. There h...
New
stefanchrobot
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
New
alice
Hey, Just curious what are the main benefits of Elixir compared to Clojure? When is Elixir more useful than Clojure and vice versa? Th...
New
boundedvariable
I am going through the kafka architecture. All the features what the kafka is providing are already in Erlang. I would like hear your opi...
New
nsuchy
Hi. I’ve noticed that Windows Powershell has it’s own IEX command and you cannot access Elixir’s IEX due to the conflict. This isn’t a cr...
New
axelson
This post is a wiki (feel free to hit the edit button near the bottom right of this post to add your own changes!) This post collects co...
239 47930 226
New
joaquinalcerro
Hi there, I am working with Ecto-Postgresql and I need to call all of the records from a specific table but the table has 40,000 records...
New
hariharasudhan94
Lets say I have map like this fetching from my database %{"_id" => #BSON.ObjectId<58eb1a7a9ad169198c3dXXXX>, "email" => ...
New

We're in Beta

About us Mission Statement