roulette v1.0.1 Roulette.Publisher

Publisher module. this provides just a single function,

Link to this section Summary

Functions

Publish a message-data with a topic

Link to this section Functions

Link to this function pub(module, topic, data)
pub(module(), String.t(), binary()) :: :ok | :error

Publish a message-data with a topic

Internallly, roulette chooses a proper gnatsd-cluster for the topic. For this choice, consistent-hashing is utilized.

Then, a process-pool for the cluster picks a GenServer process which keeps connection to gnatsd-server. Within this connection, roulette tries to send PUBLISH messages.

If it failed, automatically retry until it succeeds or reaches to the limit number that you set on your configuration as max_retry.