Registering module attributes

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 ...

Get Mastering Elixir now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.