The future of GenStage and Flow

Hello everyone,

Last year we have announced GenStage and then developed Flow.

Our initial plan was to make GenStage part of Elixir. That’s why all of GenStage code is under an “Experimental” namespace. However, GenStage exceeded our expectations and has grown enough to stand on its own. Furthermore, Elixir v1.4 shipped with Registry and Task.async_stream, which solve some common scenarios one would use GenStage for.

For this reason, we have decided we will no longer include GenStage as part of Elixir’s standard library and instead continue developing and improving it as a separate project in the Elixir organization.

Therefore, the following changes will happen to GenStage over the next days:

  1. The Experimental namespace will be removed
  2. DynamicSupervisor will be renamed to ConsumerSupervisor (we will still include a DynamicSupervisor as part of Elixir but it won’t “talk” to GenStage)
  3. Flow will be moved to its own package that depends on GenStage
  4. We will release v0.11.0 for both projects

Other than that, our other plans for GenStage/Flow are the same as before.

Happy coding!

58 Likes

GenStage and Flow 0.11.0 are out!

19 Likes

For the lazy :slight_smile:

GenStage
Hex
Docs
GitHub

Flow
Hex
Docs
GitHub

12 Likes