Rambla.Connection behaviour (Rambla v0.15.0) View Source

The default behaviour for publishers. The common use case would be the module implementing this behaviour opens a connection (and keep it opened,) and publishes messages as needed.


Rambla.Connection supports options: config that will be passed directly to :poolboy as Options.

Example

config :rambla,
  amqp: []
  pools: [amqp: [options: [size: 2, max_overflow: 1], ]]

Link to this section Summary

Types

The accepted type of the message to be published

The response type for the single request. Contains a status and a response from remote service

The response type for the bulk request. Contains a status and a response from remote service

t()

The connection information

Functions

Returns a specification to start this module under a supervisor.

Accepts options for the underlying connection (those will be passed to connect/1.)

Callbacks

Connects to the remote service and returns a connection object back

Publishes the message to the remote service using connection provided

Link to this section Types

Specs

message() :: binary() | Enum.t()

The accepted type of the message to be published

Specs

messages() :: [message()]

Specs

outcome() :: {:ok | :error, Rambla.Exception.t() | any()}

The response type for the single request. Contains a status and a response from remote service

Specs

outcomes() :: %{oks: [any()], errors: [Rambla.Exception.t()]}

The response type for the bulk request. Contains a status and a response from remote service

Specs

t() :: %Rambla.Connection{
  conn: Rambla.Connection.Config.t(),
  conn_params: keyword(),
  conn_type: atom(),
  conn_pid: pid(),
  opts: map(),
  errors: [Rambla.Exception.t()]
}

The connection information

Link to this section Functions

Returns a specification to start this module under a supervisor.

See Supervisor.

Accepts options for the underlying connection (those will be passed to connect/1.)

Link to this section Callbacks

Specs

connect(params :: keyword()) :: t()

Connects to the remote service and returns a connection object back

Specs

publish(conn :: any(), message :: message()) :: outcome()

Publishes the message to the remote service using connection provided