Hi everyone,
We have been prototyping a Go SDK for Beam for some time and have reached
a point, where we think this effort might be of interest to the wider Beam
community and would benefit from being developed in a proper feature
branch. We have prepared a PR to that end:
https://github.com/apache/beam/pull/4200
Please note that the prototype supports batch only, for now, and includes
various examples that run on the Go direct runner. Go would be the first
SDK targeting the portability framework exclusively and our plan is to
extend and benefit from that ecosystem.
We have also prepared an RFC document with the initial design, motivations
and tradeoffs made:
https://s.apache.org/beam-go-sdk-design-rfc
The challenge is that Go is quite a tricky language for Beam due to various
limitations, notably strong typing w/o generics, and so the approaches
taken by Java and Python do not readily apply.
Of course, neither the prototype nor the design are in any way final --
there are many open questions and we absolutely welcome ideas and
contributions. Please let us know if you have any comments or objections
(or would like to help!).
Thanks,
Henning Rohde, Bill Neubauer, and Robert Burke