Kayrock (kayrock v0.1.15) View Source
Documentation for Kayrock.
Link to this section Summary
Types
Represents an API response message
Specifies the version of an API message
A pid
for a Kayrock.BrokerConnection
process.
A pid
for a Kayrock.Client
process.
A broker's advertised integer node id
A node selector for sending messages to the cluster
Functions
Fetch the supported API versions from the cluster
Makes a synchronous call directly to a broker
Make an api call to a Kafka cluster mediated through a client
Create one or more topics
Link to this section Types
Specs
api_response() :: map()
Represents an API response message
This will generally be a generated struct.
Specs
api_version() :: non_neg_integer()
Specifies the version of an API message
Kayrock will generally try to pick a reasonable default here, but you can override it in many cases. See Kafka Protocol Documentation
Specs
broker_pid() :: pid()
A pid
for a Kayrock.BrokerConnection
process.
This is for low-level communication with individual brokers. Generally you
should work with a client_pid
.
Specs
client_pid() :: pid()
A pid
for a Kayrock.Client
process.
Specs
node_id() :: integer()
A broker's advertised integer node id
Specs
node_selector() :: node_id() | :random | :controller | {:topic_partition, topic_name(), partition_id()}
A node selector for sending messages to the cluster
Generally the Kayrock API will select the right node depending on the operation. These are exposed to provide fine-grained user control in a few cases where it might make sense to override the default.
Possible values:
- Integer - Directly access a node by id. Generally you should not do this unless you are operating at a low level.
:random
- Select a node at random from the cluster metadata.:controller
- Select the controller node - this is used for cluster management messages
Specs
partition_id() :: non_neg_integer()
Specs
topic_name() :: binary()
Link to this section Functions
api_versions(client_pid, version \\ 0, node_selector \\ :controller)
View SourceSpecs
api_versions(client_pid(), api_version(), node_selector()) :: {:ok, api_response()}
Fetch the supported API versions from the cluster
Kayrock currently supports versions 0 and 1.
Specs
broker_sync_call(pid(), Kayrock.Request.t()) :: {:ok, map()}
Makes a synchronous call directly to a broker
broker_id
should be the pid of a Kayrock.BrokerConnection
. request
must
have an implementation for the Kayrock.Request
protocol.
Specs
client_call(client_pid(), Kayrock.Request.t(), node_selector()) :: {:ok, api_response()}
Make an api call to a Kafka cluster mediated through a client
create_topics(client_pid, topics, timeout \\ -1, version \\ 2, node_selector \\ :controller)
View SourceCreate one or more topics