lib/clickhouse_logger/client.ex

defmodule ClickhouseLogger.Client do
  @moduledoc """
  Clickhouse transport client behaviour
  """

  @type options :: keyword
  @type state :: any
  @type error :: any
  @type payload :: list

  @callback init(options) :: {:ok, state} | {:error, atom}
  @callback configure(options, state) :: {:ok, state} | {:error, atom}
  @callback send([payload], state) :: {:ok, state} | {:error, error, state}
end