This is a bug for progress on various small usability and UX improvements to the Go SDK implementation of Cross-Language. I don't feel each one individually is important enough for a Jira, but together it's worth recording progress.
- Adjust user-facing XLang functions so that Sink and Source versions are actually sinks and sources (no outputs and no inputs respectively).
- Rename SourceInputTag and SinkOutputTag since they are no longer used with source/sink versions of the methods.
- Adjust beam/xlang.go so that it doesn't need to import job_management protos. Move the proto creation down into the method the proto is passed to (which is xlangx.Expand).
- Refactor the functions in xlangx/translate.go and how they are used, since right now the functions just get called one after another in sequence.
- Move as many xlang calls out of universal.go as possible. They should be handled as part of the normal sequence of the SDK, such as in proto marshalling and unmarshalling.
- Add wrappers around xlang calls in existing examples, to both give a cleaner interface and provide an example of how xlang transforms should be implemented.