First of all let me just say thanks for this framework. Looks really
I'm considering using the CQRS pattern for a project that aims at
creating a platform for various teams to use. Each team will have it's
own business requests and therefore should be able to enhance the
functionality of the platform without impacting others.
I believe that using CQRS is a radical mind shift from how we're used
to do development, but one that would allow us to have an architecture
that isolates features instead of modules.
Even more, with such a design features should be "plug and play"
because as they all revolve around a core flow, the only thing they
need to do is to "tap" into the appropriate events to perform their
First of all, has anybody heard of any examples of CQRS being used
with such an objective (feature extensibility in a shared product)? It
would be great to provide as support when pitching the idea as this
implies a big change for all our developers.
Secondly, I was thinking of taking this "feature boundaries" concept a
step further and use OSGI in doing so. I envision a system were we
could have a core bundle that manages the main commands, aggregates
and events of our domain, and have additional bundles that would
expose/register additional commands, events, and event handlers that
add incremental functionality to the system.
The main objective of using this approach is that once you reach this
level of isolation, features become really plug and play and if one
team wants a certain feature developed by another team they only need
to deploy that feature bundle.
Do you have any thoughts on this? Prior art?
Finally, I see that there's a MongoDB implementation of the Event
Store and I was wondering if anybody is working on a Cassandra
I ask this because I believe that for the particular use case of event
storage, Cassandra might be a better fit as this implementation could
be a lot more robust in case of a SplitBrain problem in your storage
Cheers and thanks in advance