Ben Smith
Ben Smith
The author aggregate doesn't really need to know the username. Since it can be changed by the user aggregate we don't want to have to synchronise the value between two...
The `Conduit.Support.Middleware.Uniqueness` middleware should use the `after_failure/1` callback to release the claimed unique value when the command fails.
An aggregate usually follows a lifecycle where it transitions between a finite set of states in response to received commands. Instead of manually adding a `state` field and verifying the...
Event handlers receive events one at a time for processing. Returning `:ok` indicates successful handling, the event is acknowledged, then the next event can be received. ```elixir defmodule ExampleHandler do...
To help onboard new users it would be useful to describe the main building blocks required to start using Commanded and configure an event store. - `Commanded.Application` - explain what...
Add support for including the aggregate's expected version when dispatching a command. If the aggregate's version: * equals the expected version then the command will be executed; * is greater...
Allow an aggregate to optionally return a list of one or more side side effects in addition to any events. These effects would be run once the events have be...
Allow an event handler to have a dependency upon one or more other handlers. This would ensure that any prerequisite event handlers have successfully processed an event before the dependent...
Extend the existing process manager `interested?/1` and `handle/2` callback functions to allow access to metadata by optionally supporting `interested?/2` and `handle/3` functions. These new functions would be passed the event...
Commanded uses the `elixir_uuid` library and `UUID.uuid4()` to create version 4 randomly generated UUIDs. This uses pseudo-random bytes generated by the `crypto` module. These UUIDs are used for dispatched command...