On Tue, Jul 31, 2018 at 4:43 PM Adam Williams <pwnfact...@gmail.com> wrote:

> > 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?


I think a minimal interface probably is a good approach to start with. We
can also document the differences between cgo client and native go client,
as as what you pointed out there are things applied to cgo client don't
apply to native go client.



> 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.
> > >
>

Reply via email to