Command Bus
Command Pattern - decoupling what is done from who does it.
Usage
Registering commands and their handlers
require "arkency/command_bus"
command_bus = Arkency::CommandBus.new
register = command_bus.method(:register)
{ FooCommand => FooService.new(event_store: event_store).method(:foo), BarCommand => BarService.new }.map(®ister)