Open v3n opened 2 years ago
Thanks, will take a look.
OK! the correct proto file is here and we need to copy it down.
@n3wscott: Note that that proto is slightly out of date - it doesn't include batch support (and doesn't have a csharp_namespace option, although that shouldn't affect go). The most up-to-date one is at https://github.com/cloudevents/spec/blob/main/cloudevents/formats/cloudevents.proto - I'm expecting to use that as the basis of the GA version in 1.0.2 assuming the vote passes.
This is more than half a year old - is this repo even maintained anymore?
It is maintained by volunteers. Would you like to contribute @AndreasBergmeier6176 ?
Hi, we've run into a fairly high severity issue using CloudEvents with Go.
go-sdk
uses a different Protobuf descriptor from the descriptor defined in the spec and other SDKs.We're developing on top of Cloudevents in a mixed language ecosystem (primary Java & Go, using Protobuf as our schema and interoperability layer. Producers use the HTTP protocol to a collection, which outputs to the Kafka binding where producers pick up events).
There are a number of interoperability issues we've run into so far, namely due to Go using an inconsistent version of the protobuf definition:
protoc-generated Go cannot import the spec.
cloudevents.io/genproto
. This module does not exist.Since this repository doesn't exist, anything generated from Go doesn't work. This could be solvable via go.mod
replace
directives except....Different protobuf packages
package io.cloudevents.v1;
package pb;
While wire format interoperability is unaffected, this causes
protoreflect
to not work between languages. For example: embedding a CloudEvents type viagoogle.protobuf.Any
or usingprotojson
Solution
cloudevents.io/genproto
cloudevents.io/genproto