AxonFramework looks great for a 1.0 product. I am evaluating axon
framework for use in our new SAAS product and there are some concerns.
1) Are there plans to have a better way for nesting commands? Right
now each command creates new UnitOfWork without any regard for a
"current unit of work". We want ACID transactions on the single
database via composition of commands.
Consider this case: We have a CreateUserCommand that creates a user
with 'normal' permissions, and a "ModifyUserRoles" command that adds
specific roles to a user. I would like to have a
"CreateManagementUser" command that invokes both of the other commands
within a single database transaction (single UnitOfWork). It appears
I have to wire this up inside the domain objects to get proper event
handling. There are other more examples where the complex command
may involve several subcommands, all of which are one logical
transaction for the database and UI.
2) We need to use the "hybrid" model where the domain objects write
directly the database, without event sourcing. It is a requirement
that we return "success" in the UI only when the database commit
succeeds. There is not quite enough documentation yet on this,
particuarly about how the transaction management is handled. It
appears the addressbook example is such an application but this is not
made clear.