Hello Fernando! That should be correct.
The protos are used to represent the user pipeline in a portable way, and handle the serialization of such. However the only time the SDKs actually need deal with the protos is the "last mile", but this is a per SDK choice. The Go SDK is mostly set up to avoid direct coupling of the exec constructs and construction constructs and the resulting protos, in the event that the Beam protos change dramatically in a breaking version. Translating construction time constructs to the protos is in graphx/translate.go . If a worker needs to execute something as a result, the reverse translation to execution time constructs is in exec/translate.go. Not everything has both construction time and runtime constructions, hence the split translation approach. Let me know if you have any Go SDK implementation side questions. I'm happy to help. Robert Burke (@lostluck) On Tue, Mar 16, 2021, 12:41 PM Fernando Morales Martinez < [email protected]> wrote: > *Hi team,* > > > We’re working on WI https://issues.apache.org/jira/browse/BEAM-3304 and > have a couple of questions. > > As we understand it, the Proto compiler based on file > beam_runner_api.proto creates the whole RunnerApi for Java > (RunnerApi.class) and for Go (beam_runner_api.pb.go) > > > TriggerTranslation.java uses several methods from the RunnerApi to > translate from Trigger to Proto and viceversa which then get used for > windowing strategies. > > Now, if we’re on the right path, what needs to be done as part of the > *BEAM-3304* WI is > > > > - implement, for example, the AfterPane (called trigger ElementCount > in Go) and > - implement the TriggerTranslation code in Go along with the necessary > plumbing, in order to expose that trigger to the user. > - Implement WindowingStrategy in Go > (sdks/go/pkg/beam/core/graph/window/strategy.go) > > > Is this correct? Is there some important piece I’m missing? > > > Thanks for the help! > > > > > > > > > *This email and its contents (including any attachments) are being sent > toyou on the condition of confidentiality and may be protected by > legalprivilege. Access to this email by anyone other than the intended > recipientis unauthorized. If you are not the intended recipient, please > immediatelynotify the sender by replying to this message and delete the > materialimmediately from your system. Any further use, dissemination, > distributionor reproduction of this email is strictly prohibited. Further, > norepresentation is made with respect to any content contained in this > email.*
