Orkestra.MessageBus.RabbitMQ (orkestra v0.2.0)

Copy Markdown View Source

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

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

start_link(opts \\ [])