pskevin commented on a change in pull request #12445: URL: https://github.com/apache/beam/pull/12445#discussion_r465479332
########## File path: sdks/go/pkg/beam/external.go ########## @@ -16,10 +16,151 @@ package beam import ( + "context" + "fmt" + "github.com/apache/beam/sdks/go/pkg/beam/core/graph" + "github.com/apache/beam/sdks/go/pkg/beam/core/runtime/graphx" "github.com/apache/beam/sdks/go/pkg/beam/internal/errors" + jobpb "github.com/apache/beam/sdks/go/pkg/beam/model/jobmanagement_v1" + pipepb "github.com/apache/beam/sdks/go/pkg/beam/model/pipeline_v1" + "google.golang.org/grpc" ) +// ExternalTransform represents the cross-language transform in and out of the Pipeline as a MultiEdge and Expanded proto respectively +type ExternalTransform struct { + id int + Urn string + Payload []byte + In []PCollection + Out []FullType + Bounded bool + ExpansionAddr string + Components *pipepb.Components + ExpandedTransform *pipepb.PTransform + Requirements []string +} + +// CrossLanguage is the temporary API to execute external transforms +// TODO(pskevin): Handle errors using the TryN and Must strategies instead one function handling multiple points of failure +func CrossLanguage(s Scope, p *Pipeline, e *ExternalTransform) []PCollection { + if e.ExpansionAddr == "" { // TODO(pskevin): Better way to check if the value was ever set + // return Legacy External API + } + + /* + Add ExternalTranform to the Graph Review comment: Thanks for clarifying in detail. Reflected the changes. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org