3 ms·
1. Does Ash supports CQRS/ES architecture? Or alternatively can it be combined with a framework like Commanded? 2. How customizable is GraphQL layer? Specific
by nivertech 1y ago
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?
- joshprice 1y agoAsh 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 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-simple-for-ash-framework https://alembic.com.au/blog/ash-events-event-sourcing-made-s...
- joshprice 1y agoAshGraphQL (https://github.com/ash-project/ash_graphql https://github.com/ash-project/ash_graphql) errors are relatively customisable https://hexdocs.pm/ash_graphql/handle-errors.html https://hexdocs.pm/ash_graphql/handle-errors.html
- mike1o1 1y agoThe 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.
- nivertech 1y agoAshCommanded: A declarative CQRS / ES extension for Ash https://elixirforum.com/t/ashcommanded-a-declarative-cqrs-es-extension-for-ash/70900 https://elixirforum.com/t/ashcommanded-a-declarative-cqrs-es... https://github.com/accountex-org/ash_commanded https://github.com/accountex-org/ash_commanded