Distributed MessageBus implementation using RabbitMQ.
Commands use exchange orkestra.commands with one queue per command type (competing consumers).
Events use exchange orkestra.events with one queue per subscriber (fan-out per handler).
Ack/nack is handled natively via AMQP: handler returns :ok → ack, {:error, _} → nack+requeue.
Setup
# In your supervision tree
{Orkestra.MessageBus.RabbitMQ, []}Then register handlers:
alias Orkestra.MessageBus.RabbitMQ, as: Bus
Bus.subscribe_command("tasks.commands.start_assessment", MyCommandHandler)
Bus.subscribe_event("tasks.events.assessment_completed", MyEventHandler)
Summary
Functions
Returns a specification to start this module under a supervisor.
Functions
Returns a specification to start this module under a supervisor.
See Supervisor.