Hi all, One of our goals for the portability framework is to be able to assign different environments to different segments of a pipeline. This is not possible right now because environments are a concept that really only exist in the portable runner as protobuf messages: they lack a proper API on the pipeline definition side of things.
As a first step toward our goal, one of our team members just created a PR[1] exposing environments as a proper class hierarchy, akin to PTransforms, PCollections, Coders, etc. It's quite straightforward, and we were careful to adhere to existing patterns for similar types, so hopefully the end result feels natural. After this PR is merged, our next step will be to create a proposal for assigning environments to transforms. Let us know what you think! -chad [1] https://github.com/apache/beam/pull/9811