defmodule BroadwayKafka do @moduledoc """ Helpers for BroadwayKafka. You can find the Broadway producer in `BroadwayKafka.Producer`. """ @doc """ Sequentially updates topics in all Broadway producers in the pipeline given by `name`. ## Examples BroadwayKafka.update_topics(MyBroadway, ["topic_a", "topic_b"]) :ok BroadwayKafka.update_topics(MyBroadway, []) :ok """ def update_topics(name, topics) do each_producer(name, &GenServer.cast(&1, {:update_topics, topics})) end defp each_producer(server, fun) when is_function(fun, 1) do server |> Broadway.producer_names() |> Enum.each(fun) end end