AxonFramework/AxonFramework — Issue #8: Distributed command bus
Author: abuijze
Created: 2011-12-03 14:04:43+00:00
State: open
Labels: Enhancement

Currently, the command bus is limited to a single JVM. In larger systems, the command bus should be a mechanism that dispatches commands to different VM's.

The distributed command bus should distrubute the commands consistently over the VMs. That means that (as long as the hardware configuration does not change), commands for the same aggregate should be routed to the same machine. If the hardware configuration does change, routing should remain as consistent as possible, minimizing the need to transfer a lot of processing between machines.

The CommandBus implementation could use JGroups to manage membership, detect dropped instances and transfer data between the members. The consistent hashing algorithm can be used to consistently distribute commands between the members.