logoalt Hacker News

nivertechyesterday at 11:20 AM3 repliesview on HN

1. Does Ash supports CQRS/ES architecture?

Or alternatively can it be combined with a framework like Commanded?

2. How customizable is GraphQL layer? Specifically error handling/idempotency for mutations?


Replies

joshpriceyesterday at 11:46 AM

Ash models an application's verbs or operations as actions. This allows the production of events via an "Aspect Oriented" way of hooking into the action lifecycle.

Although it doesn't support a command first Event sourcing approach, AshEvents (https://github.com/ash-project/ash_events) does help produce events that could be replayed.

Torkild wrote an article about his latest updates to AshEvents here:

https://alembic.com.au/blog/ash-events-event-sourcing-made-s...

mike1o1yesterday at 4:21 PM

The GraphQL layer is built on top of Absinthe. If you really find something you can't model with Ash's actions, you can always just jump to your Absinthe schema and write you own queries/mutations/subscriptions. You'll just need to write your own resolver.