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!

First Post!

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

Where Next?

Popular in Announcing Top

mspanc
I am pleased to announce an initial release of the Membrane Framework - an Elixir-based framework with special focus on processing multim...
New
moxley
An Elixir implementation of the popular PostCSS library, providing CSS parsing, AST manipulation, and stringification capabilities. Feat...
New
mikehostetler
Hey everyone! I’m excited to share ReqLLM - a new approach to LLM interactions in Elixir that I’ve been working on. After building agent...
New
dimamik
Vault is a lightweight Elixir library for immutable data storage within a process subtree. Due to Elixir’s actor model nature, it’s comm...
New
wingyplus
I just did a dirty hack after seeing Zoi on x.com a few hours ago. Quick Introduction The zoi_defstruct is a library to help you generat...
New
webofbits
Helix is a visual workflow designer for AI agents and multi-agent systems, built with Phoenix and React Flow. It provides an intuitive dr...
#ai
New
type1fool
WebAuthnLiveComponent WebAuthnComponents See this post about renaming the package. Passwordless authentication for Phoenix LiveView app...
New
LostKobrakai
I’ve recently created a small library phoenix_vite integrating the vite build tooling with phoenix. It provides an igniter.installer t...
New
anuaralfetahe
Hello Published a new library - ProcessHub! ProcessHub is a library designed to manage process distribution within the Elixir cluster. ...
New
volcov
Hello, How is everyone? I hope you’re well =) I worked on a project with some legacy code that existed before Oban’s arrival. This leg...
New

Other popular topics Top

pmjoe
I have a relationship of love and hate with Elixir. Lots of things are just absolutely right, but there are some things that are kind of ...
New
lessless
I believe there are people here who are dealing with CSV files import on the daily basis, and since Excel is a really popular tool there ...
New
itssasanka
Hi all, Trying to get some more clarity over utc_datetime and naive_datetime for Ecto: https://hexdocs.pm/ecto/Ecto.Schema.html#module-...
New
_russellb
I want to try my hand at web scraping. What tools/libraries do I need to use. I’m hoping to turn this into something professional so don’...
New
KronicDeth
Elixir plugin for JetBrain’s IntelliJ Platform (including Rubymine) This is a plugin that adds support for Elixir to JetBrains IntelliJ...
289 35421 110
New
Jim
As a follow up to my earlier question: I have the code compiling and running but not getting a successful login from the rest server. ...
New
lastday4you
I wanted to check elixir version in phoenix because i found that my elixir is 1.5 but when i use Enum.chunk_by it said the function is un...
New
script
If I have a string “1000 cfu/ml” . I want to remove the characters and / and space . So the string is like this "1000" What is the ...
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
romenigld
I am trying to run a deploy with docker and I successfully runned with this command: docker build -t romenigld/blog-prod . but when I t...
New

We're in Beta

About us Mission Statement