Let's start by setting the default pipeline options. We want to register them as @default_min_demand, @default_max_demand, and @default_count on the caller module. If they aren't passed via the use parameters, we will set them as 1, 10, and 1, respectively.
Having the count as 1 means that each step will have a single process. This helps to debug and visualize things but doesn't leverage the Elixir capability of concurrently running thousands of processes. The min_demand and max_demand are also really small, and should be increased in a production scenario. For reference, and because these values also signal how suited to batch processing the GenStage constructs are, the default max_demand is set to 1000 and ...