# amqp_sidecar v0.1.0 - Table of Contents > Configurable AMQP sidecar for consuming and publishing RabbitMQ messages ## Modules - [AmqpSidecar.Broker](AmqpSidecar.Broker.md): Behaviour abstracting the AMQP client. - [AmqpSidecar.Broker.AMQP](AmqpSidecar.Broker.AMQP.md): `AmqpSidecar.Broker` implementation backed by the `amqp` client. - [AmqpSidecar.Config](AmqpSidecar.Config.md): Parses and validates the broker.json configuration - [AmqpSidecar.Consumer](AmqpSidecar.Consumer.md): Dynamically creates AMQP consumers based on the configuration. - [AmqpSidecar.Http](AmqpSidecar.Http.md): Behaviour abstracting outbound HTTP calls (message forwarding). - [AmqpSidecar.Metrics](AmqpSidecar.Metrics.md): Metrics for the application - [AmqpSidecar.Publisher](AmqpSidecar.Publisher.md): Publishes messages to an AMQP exchange with a given routing key. - [AmqpSidecar.PublisherBehaviour](AmqpSidecar.PublisherBehaviour.md): Behaviour for message publishing, allowing the HTTP layer to be tested with `AmqpSidecar.Publisher.Mock` (Mox). - [AmqpSidecar.Web.Controllers.MessageController](AmqpSidecar.Web.Controllers.MessageController.md): Handles the message publishing endpoint - [AmqpSidecar.Web.Plugs.Logger](AmqpSidecar.Web.Plugs.Logger.md): Logs incoming requests - [AmqpSidecar.Web.Plugs.PrometheusExporter](AmqpSidecar.Web.Plugs.PrometheusExporter.md) - [AmqpSidecar.Web.Router](AmqpSidecar.Web.Router.md)