Rambla.Connection behaviour (Rambla v0.14.1) 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.

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