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:
- The Experimental namespace will be removed
- DynamicSupervisor will be renamed to ConsumerSupervisor (we will still include a DynamicSupervisor as part of Elixir but it won’t “talk” to GenStage)
- Flow will be moved to its own package that depends on GenStage
- We will release v0.11.0 for both projects
Other than that, our other plans for GenStage/Flow are the same as before.