It seems that there are already interests in contributing to the project.
Why not take more time to develop the project and get the project into a
more mature stage first? There is no harm to develop the project in that
way.

- Sijie

On Thu, Sep 2, 2021 at 12:06 AM Lari Hotari <l...@hotari.net> wrote:

> On Thu, Sep 2, 2021 at 9:51 AM Enrico Olivelli <eolive...@gmail.com>
> wrote:
>
> > As Sijie said it is probably too early to bring it in, as the project is
> > still very new.
> > On the other hand, as far as it is a single person project, I am not sure
> > how many people will want to use it in production
> > and we want to bring Pulsar to a wider audience.
> >
>
> Reactive Streams is the future of streaming applications on the JVM.
> It won't be a single person project. There's already Pulsar community
> members that are looking forward to contributing.
> Here's one example:
> https://github.com/apache/pulsar/issues/10437#issuecomment-869928272
> I have also another person that has contacted me and would like to start
> contributing.
>
> I have understood that it is a different process to accept an existing
> project with multiple contributors to Apache.
> Sijie and Enrico, please elaborate more about the concerns you have about
> the project being new and that I'm the author of it.
> I'd like to understand what problem it causes that the project is new.
> Isn't that a benefit?
> Let's discuss more about your concerns to gain more understanding.
>
> -Lari
>
>
>
>
> >
> > some answers to other comments inline below
> >
> > Enrico
> >
> > Il giorno gio 2 set 2021 alle ore 08:26 Rajan Dhabalia <
> > rdhaba...@apache.org>
> > ha scritto:
> >
> > > *My two cents about developing and contributing adapters/connectors for
> > > Apache Pulsar. Apache Pulsar was open-sourced with Spark and Storm
> > adapters
> > > initially and then such adapter families evolved with multiple other
> > > adapters, connectors and IO connectors (sink/source) into apache pulsar
> > git
> > > repo. Such adapters help pulsar for its adaption and user growth.
> > However,
> > > after adding more adapters in the pulsar repo, we realized two major
> > > issues: One of the issues, has made Pulsar git repo bulky which
> increases
> > > build time and sometimes it’s difficult to build and implement
> > integration
> > > tests. Another issue is the maintenance of such adapters with new
> > releases
> > > of the dependent systems and bug fixes for multiple versions.
> Therefore,
> > we
> > > eventually created a separate repository to manage adapters separately
> > into
> > > pulsar-adapters gitrepo. So, one of the takeaways from past experience,
> > if
> > > we absolutely need an adapter then we can use a pulsar-adapter gitrepo
> > and
> > > we should evaluate the feasibility of maintaining such adapters with
> > their
> > > different versions and their interest in the community. Thanks,Rajan*
> > >
> > > On Wed, Sep 1, 2021 at 10:59 PM Lari Hotari <l...@hotari.net> wrote:
> > >
> > > > Replies inline below:
> > > >
> > > > On Thu, Sep 2, 2021 at 3:37 AM Sijie Guo <guosi...@gmail.com> wrote:
> > > >
> > > > > Lari,
> > > > >
> > > > > Thank you for bringing this up!
> > > > >
> > > > > In general, I would love to see this being accepted to the project.
> > > > >
> > > >
> > > > Thanks!
> > > >
> > > >
> > > > >
> > > > > However, in the past, there were other language clients contributed
> > to
> > > > the
> > > > > project. They were not accepted because the PMC doesn't have enough
> > > > > bandwidth to staff it.
> > >
> >
> > I think that the community is still growing and also the PMC, if we have
> > enough people that are willing to support this
> > then I feel we can accept it.
> > In particular Lari is already part of the Community as committer and he
> > will take care of the project.
> >
> >
> > > > >
> > > > >
> > > >
> > >
> >
> https://github.com/apache/pulsar/wiki/PIP-77%3A-Contribute-Supernova-to-Apache-Pulsar
> > > > > is one of the examples.
> > > > >
> > > >
> > > > I don't think that Reactive Streams is comparable to this Supernova
> > > > example. That is an example of a very marginal language.
> > > >
> > > > Reactive Streams support is a mainstream technology that originates
> > from
> > > > Netflix. It's not about a single programming language.
> > > > The Reactive Streams is an interoperability specification and there
> are
> > > > multiple implementations for the JVM.
> > > >
> > > > For example, this Reaction Pulsar Adapter library uses Project
> Reactor
> > as
> > > > the implementation, but the library can be used together with Akka
> > > Streams,
> > > > RxJava 3, Vert.x, SmallRye Mutiny (RedHat/Quarkus) and others.
> > > >
> > > > This library is not about a single programming language, it's about
> all
> > > > languages and platforms on the JVM that support Reactive Streams.
> > > > It could be an extension directly to the Pulsar Java Client. I just
> > > thought
> > > > that maintaining the project would be easier when it's a separate
> > > > repository.
> > > > If that is causing the staffing issue that you referred to being the
> > > > showstopper issue, I could also restructure the project so that it
> > could
> > > be
> > > > added as modules to apache/pulsar repository.
> > > >
> > > > There's a short summary in
> > > >
> > > >
> > >
> >
> https://www.reactive.foundation/post/why-reactive-principles-ensure-system-scalability-with-josh-long
> > > > about the value proposition of Reactive Streams and why it matters.
> > > > The recent Netflix Techblog explicitly mentions Reactive Streams in
> the
> > > > blog post about Netflix's device management platform:
> > > >
> > > >
> > >
> >
> https://netflixtechblog.com/towards-a-reliable-device-management-platform-4f86230ca623
> > > > "Back-Pressure Support - Because the processing workload varies
> > > > significantly over time, the solution must first and foremost scale
> > with
> > > > the message load by providing back-pressure support as defined in the
> > > > Reactive Streams specification — in other words, the solution should
> be
> > > > able to switch between push and pull-based back-pressure models
> > depending
> > > > on the downstream being able to cope with the message production rate
> > or
> > > > not."
> > > >
> > > >
> > > > > Also, the project is still relatively new and there is only one
> > > > > contributor.
> >
> > > >
> > > >
> > > > Everything has a beginning. :)
> > > > I was assuming that this would be optimal that there is only one
> > > > contributor and that other contributions could contaminate the IPR
> and
> > > make
> > > > it harder to move to the Apache Pulsar project later.
> > > > As mentioned above, this is more like an extension to the Pulsar Java
> > > > Client and I could restructure the project so that it could be added
> as
> > > > modules to the apache/pulsar repository if the separate repository
> > > > causes the barrier.
> > > >
> > > >
> > > > > Hence, my recommendation is to grow the contributors for this
> project
> > > so
> > > > > that there are enough contributors to work on that project. Once
> > there
> > > > are
> > > > > sufficient resources and contributors, the PMC can revisit this
> > > proposal
> > > > > and see if the PMC is able to staff it.
> > > > >
> > > >
> > > > Did the PMC already vote on this? :) I hope we could have the
> > discussion
> > > > before voting.
> > > > Adding support for Reactive Streams will add a lot of value to Apache
> > > > Pulsar.
> > > >
> > > > I'm talking about the value of Reactive Streams for Apache Pulsar
> > > > application developers TODAY AT 11:05PT in
> > > > my SpringOne talk "Reactive Applications with Apache Pulsar and
> Spring
> > > > Boot"
> > > >
> > > >
> > >
> >
> https://springone.io/2021/sessions/reactive-applications-with-apache-pulsar-and-spring-boot
> > > > It is free to attend, https://springone.io to register. There's also
> > an
> > > > AMA
> > > > session immediately after the session Q&A.
> > > > Please join. Come and see!
> > > >
> > > > I'm looking forward to hearing more voices from the Apache Pulsar
> > > community
> > > > in this email discussion.
> > > >
> > > > BR, Lari
> > > >
> > > >
> > > > >
> > > > > - Sijie
> > > > >
> > > > >
> > > > > On Wed, Sep 1, 2021 at 4:31 AM Lari Hotari <lhot...@apache.org>
> > wrote:
> > > > >
> > > > > > Dear Apache Pulsar community members,
> > > > > >
> > > > > > I have developed a Reactive Streams adapter for the Apache Pulsar
> > > Java
> > > > > > Client. It uses Project Reactor as the Reactive Streams
> > > implementation.
> > > > > >
> > > > > > The repository is here:
> https://github.com/lhotari/reactive-pulsar
> > > > > > and library is available in Maven Central:
> > > > > >
> > > > >
> > > >
> > >
> >
> https://search.maven.org/search?q=g:com.github.lhotari%20a:reactive-pulsar*
> > > > > >
> > > > > > I would like to contribute this library to the Apache Pulsar
> > project.
> > > > > > I would suggest that the library is committed to a separate
> > > repository,
> > > > > for
> > > > > > example https://github.com/apache/pulsar-reactive .
> > > > > >
> > > > > > # Motivation
> > > > > >
> > > > > > There's a need to "go reactive from end-to-end" when building
> > modern
> > > > > > reactive applications with platforms such as Spring Reactive.
> > > > > >
> > > > > > There are ways to adapt the Apache Pulsar Java client async API
> > calls
> > > > to
> > > > > > Reactive Streams with a few lines of code. However, a lot will be
> > > > missing
> > > > > > and achieving the complete solution will require much more
> effort.
> > > > > >
> > > > > > The primary goal of this library is to provide a Reactive Streams
> > > > adapter
> > > > > > that wraps the Apache Pulsar Java client with Reactive APIs
> > > > > > for sending, reading and consuming messages.
> > > > > > The secondary goal is to provide a Spring Boot starter for easily
> > > > > adopting
> > > > > > the power of Apache Pulsar for Spring Boot applications.
> > > > > >
> > > > > > It is currently out of scope for this library to build a reactive
> > > > client
> > > > > > all the way from the binary protocol handling.
> > > > > > This library builds upon the existing Apache Pulsar Java client
> and
> > > > uses
> > > > > > the async API for operations.
> > > > > >
> > > > > > # Features
> > > > > >
> > > > > > - Simple and intuitive reactive APIs for sending, reading and
> > > consuming
> > > > > > messages.
> > > > > > - Non-blocking backpressure support for the provided reactive
> APIs
> > > > > > - Pulsar client resource lifecycle management that integrates
> with
> > > the
> > > > > > Reactive programming model
> > > > > > - Additional producer caching that caches producers.
> > > > > >   - Useful for API backends since the Pulsar client producer
> > resource
> > > > can
> > > > > > be shared and cached across multiple REST calls.
> > > > > > - Support for in-order parallel (concurrent) processing at the
> > > > > application
> > > > > > level
> > > > > >   - I/O intensive message processing can leverage Project
> Reactor's
> > > > > > capabilities to efficiently
> > > > > >     handle thousands of simultaneous I/O calls to external REST
> > APIs
> > > > and
> > > > > > resources that have Reactive clients/drivers.
> > > > > >   - In-order parallel processing support can retain key-order at
> > the
> > > > > level
> > > > > > of a single consumer.
> > > > > >
> > > > > > I'm presenting the library and it's features tomorrow on
> September
> > > 2nd
> > > > in
> > > > > > the SpringOne virtual conference, which is free to attend.
> > > > > > The session details and schedule are at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> https://springone.io/2021/sessions/reactive-applications-with-apache-pulsar-and-spring-boot
> > > > > > .
> > > > > >
> > > > > > # Licenses
> > > > > >
> > > > > > The Reactive Pulsar Adapter library is under the Apache Licence
> > > Version
> > > > > 2.0
> > > > > > . The main dependencies are reactor-core
> > > > > > (https://github.com/reactor/reactor-core) and jctools-core (
> > > > > > https://github.com/JCTools/JCTools) which are also
> > > > > > ASL 2.0 licensed.
> > > > > > There's also a dependency to Caffeine (
> > > > > > https://github.com/ben-manes/caffeine)
> > > > > > and the Spring Boot Starter
> > > > > > depends on Spring Boot and Spring Framework. These are all ASL
> 2.0
> > > > > licensed
> > > > > > libraries.
> > > > > > The additional Spring integration testing support library depends
> > on
> > > > > > Testcontainers, which is also ASL 2.0 licensed.
> > > > > >
> > > > > >
> > > > > > I'm looking forward to the discussion about this.
> > > > > >
> > > > > >
> > > > > > Best regards,
> > > > > >
> > > > > > Lari Hotari
> > > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to