Resurrecting this thread.  Two points to make:

First, it's completely fine for Apache projects to add someone as a
committer to maintain a specific part of the tree, and I believe Pulsar has
already done this for the .NET driver.  So if we agree in principle that a
protocol handler or other piece of code should be in-tree, maintainership
shouldn't be an obstacle.

Second, I think the right approach is to have a mix -- popular protocols
that play well with Pulsar's semantics should be maintained and distributed
with Pulsar to provide the least friction possible.

In particular, DataStax has seen a lot of interest in our Fast JMS
implementation https://github.com/datastax/pulsar-jms and we would like to
donate it to Apache Pulsar.


On Tue, Jul 27, 2021 at 11:31 PM Sijie Guo <guosi...@gmail.com> wrote:

> Here are my two cents.
>
> It is great to have more protocol handlers. I'd encourage people to
> maintain the protocol handler themselves rather than pushing to the
> upstream.
>
> 1. It is very hard for the community to maintain all protocol handlers
> upstream and keep them updated. Similar situations happen to
> connectors. It is also commonly seen in other projects like Spark and
> Flink. The creator of the protocol handler is the best person to
> maintain the protocol handler. You can grow the community for a given
> protocol handler as well. It is how we build and maintain KoP, AoP,
> and MoP.
>
> 2. gRPC isn't a zero-copy protocol. It is not well suited for
> implementing high-throughput streaming services.
>
> 3. Unlike KoP, MoP and AoP which are implementing well-known messaging
> protocols, the gRPC protocol handler is not an extension to support a
> different protocol. It is essentially re-implementing Pulsar's
> protocol in gRPC. This leads to a serious problem as it is competing
> with the original protocol.  It will confuse the community on what to
> use. Instead of introducing another protocol handler to re-implement
> Pulsar's protocol, I would suggest discussing whether gRPC is suitable
> for Pulsar or how we can involve Pulsar's current protocol.
>
> 4. If you want to implement a gRPC based service, an alternative would
> be adding a Google Pub/Sub protocol handler to support the protocol of
> Google Pub/Sub.
>
> -  Sijie
>
> On Tue, Jul 27, 2021 at 6:56 AM Christophe Bornet
> <bornet.ch...@gmail.com> wrote:
> >
> > Hi Apache Pulsar community,
> >
> > I’m a huge fan of the potential that the pluggable protocol handlers
> > introduced in Pulsar 2.5 unlock for increasing Pulsar popularity by
> > reducing the friction to adopt it. This includes both general-purpose
> APIs
> > like REST and gRPC, and compatibility layers for other streaming products
> > like Kafka and AMQP.
> >
> > I’ve created a PIP
> > <https://github.com/apache/pulsar/wiki/PIP-59%3A-gPRC-Protocol-Handler>
> and
> > an implementation of a gRPC protocol handler, but review of the pull
> > request stalled out <https://github.com/apache/pulsar/pull/6512> so I
> moved
> > my implementation to my own repository
> > <https://github.com/cbornet/pulsar-grpc> while I finished it.
> >
> > With development and testing effectively complete, I’d like to reopen the
> > discussion:
> >
> >
> >    1.
> >
> >    How can I move forward with contributing my gRPC protocol handler to
> >    Apache Pulsar? Is this something that is interesting and useful to the
> >    broader community?
> >    2.
> >
> >    More broadly, what policy do we want to establish for Pulsar protocol
> >    handlers and other compatibility layers?  As indicated above, I think
> that
> >    we should provide Pulsar with “batteries included” to make it as easy
> as
> >    possible for new users to get started.
> >
> >
> > Best regards.
> >
> > Christophe
>


-- 
Jonathan Ellis
co-founder, http://www.datastax.com
@spyced

Reply via email to