> the starting point would be making the interface consistent across these two > clients
I agree this is a good goal and understand the desire for consistency, although I'm not sure that 100% parity would make sense given the current interface. Definitely naming can be changed to match the cgo client whenever possible, eg Client.NewProducer vs Client.CreateProducer (note that the C++ and Java clients differ here). Some things though may not translate nicely into the native Go client, such as ClientOptions.IOThreads, since Go does not directly expose OS threads. And then there are design decisions that would be worth discussing, such as having a global client timeout for certain operations (ClientOptions.OperationTimeoutSeconds) versus using context.Context for operation cancelation/timeouts at the method level. Maybe there can be a more minimal interface both clients satisfy while allowing each to provide custom functionalities? Another goal worth considering is consistent behavior between this client and the others (Java, C++). On Mon, Jul 30, 2018 at 7:19 PM Sijie Guo <guosi...@gmail.com> wrote: > > Awesome work, Adam! It is really great to see a native go client under > development. It will be interesting to discuss a plan how to consolidate > the native go client and cgo client. probably one of the starting point > would be making the interface consistent across these two clients. > > - Sijie > > > On Mon, Jul 30, 2018 at 2:44 PM Adam Williams <pwnfact...@gmail.com> wrote: > > > Hello, > > > > I'd like to announce a newly released Go client library for Pulsar: > > https://github.com/Comcast/pulsar-client-go. > > > > The client follows semantic versioning and as of today is tagged at > > v0.1.0. This indicates that it is unstable and that breaking changes are > > allowed (up until the v1.x release) and should be expected. > > > > There is already a Go client included in the official Pulsar repository > > (under /pulsar-client-go directory). It is a wrapper around the C++ > > library. As such, cgo must be used when compiling. In contrast, this newly > > released client is 100% Go. This is the main reason it was open sourced, as > > we hope a 100% Go client will be a valuable addition to the Pulsar > > ecosystem since it avoids the complications associated with wrapping a C++ > > library. > > > > We'd like to invite collaborators to help with the development of this > > library. The README lists steps to start contributing, goals, and also some > > of the major known deficiencies of the library. In addition to this mailing > > list, we propose that Github issues be used to coordinate efforts and track > > bugs and feature development. > > > > We hope this contribution is an additive one and look forward to working > > with the community to bring it up to par with the other client libraries. > >