Agree, though let's make separate discussions. Putting all random
ideas into the same cauldron is a good recipe for making no one able
to follow or see a common line.

That's what I meant when I started the proposal of having 3.0
completely detached from "features".

If you start making a big container, you're going to fill it up with
all the "breaking changes" that you want to include, because "hey,
that's the only window of opportunity". That in turn is the surest way
to not ship anything for the next 24 months, as all the changes are
unavoidably going to get delayed and will take a long time to
stabilize.

Going back to API breakages:
 1. We never break wire protocol compatibility
 2. We try to never break client API
 3. We need a very good & compelling reason in order to break client API
 4. When we do so, we need to provide a clear path for users (eg:
pulsar-client-1.x compatibly drop-in).






--
Matteo Merli
<matteo.me...@gmail.com>

On Tue, Oct 11, 2022 at 11:58 AM Dave Fisher <w...@apache.org> wrote:
>
> Let’s discuss any and all ideas for improvement. As each is discussed we can 
> figure out how to make them non-breaking, We all want Pulsar to improve.
>
> We should encourage an open discussion where no idea is automatically bad or 
> wrong. They can just be discussed without fear.
>
> Thanks,
> Dave
>
> > On Oct 10, 2022, at 3:05 PM, Joe F <joefranc...@gmail.com> wrote:
> >
> > I would prefer that we avoid using the term “breaking changes”, which is
> > too vague to convey any specific meaning. So let me try to bring some
> > clarity.
> >
> >
> > There have been many changes to implementations, APIs and data storage
> > formats in Pulsar (and book keeper also). I have deployed many of these
> > changes to production. And I know  that Matteo and Rajan  (and others too,
> > about  whom I’m not up to date  on) have implemented and deployed many such
> > changes.  But  none of those changes ever required taking the system
> > offline. NONE.
> >
> >
> > Pulsar was developed as a 24x7x365 system, and rolling upgrades and
> > rollbacks were a given. Like “this is water”,  there was no special callout
> > needed for declaring this reality. No change, including enhancements to
> > wire protocols, broke client compatibility.  Existing clients continued to
> > work; they may not be able to use all the new features. Use of new features
> > would require the app to be rebuilt anyway.  (Checksums, e2e encryption are
> > examples)
> >
> >
> > We have even succeeded in getting Pulsar adopted for some use cases,  just
> > because the complexity of upgrading from K’s old clients to new ones were
> > costly enough to allow consideration of an alternative like Pulsar.  The
> > business cost of forcing a client upgrade can be significant,  to the point
> > of this being unviable for business.   That just cannot be hand-waved over
> >
> >
> > There have also been changes in storage formats(the ZK metadata change from
> > text to binary is an example). But through all such changes, compatibility
> > and upgradeability has been a given. There has never been a situation where
> > a live Pulsar upgrade was not possible, and   a coordinated  client upgrade
> > was mandatory.
> >
> >
> > So the question should not  be about whether “signifcant”  changes  should
> > be made or not.  Changes can be made and released in a way that breaks
> > *business*, or  they can be made in a way that lets businesses sail
> > smoothly through that change. So the question is about  how such changes
> > gets rolled out.
> >
> >
> > And to that question, my strong opinion is that any change that does not
> > allow a live/rolling upgrade or rollback, or anything that forces a client
> > to upgrade just to continue functioning,   is a non-starter.   All changes
> > can be made in a compatible, phased manner, and in a way that does not
> > penalise older versions ( older versions doing worse  on new releases is
> > also not an acceptable way of making changes)  Changes can be made in a
> > manner that make l A/B testing possible by the user, with limited risk, and
> > then choosing to a not go back. It has all been done in Pulsar before.
> >
> >
> > Would that be harder than just breaking stuff? Yes.  But that is  far more
> > preferable than forcing users to take a hit.
> >
> >
> > -joe
> >
> > On Sat, Oct 8, 2022 at 1:25 PM Rajan Dhabalia <rdhaba...@apache.org> wrote:
> >
> >> I would say first we should gather a list of changes which we want to
> >> target and find out which improvements really need major version release.
> >> We can take the Pulsar-1.0 to Pulsar-2.0 upgrade example to avoid major
> >> interruption and impact on existing systems and still achieve our goal. So,
> >> the first step is discovery of such features and then we can discuss how to
> >> introduce them in Pulsar with minimum impact on existing systems.
> >>
> >> Thanks,
> >> Rajan
> >>
> >> On Sat, Oct 8, 2022 at 1:05 PM Devin Bost <devin.b...@gmail.com> wrote:
> >>
> >>> I'm noticing some pushback on the idea of pre-emptively proposing any
> >> kind
> >>> of breaking upgrade that would necessitate cutting a 3.0 release.
> >>> I do understand the concern about introducing a breaking change... For a
> >>> distributed messaging application like Pulsar, if clients needed to be
> >>> simultaneously upgraded with brokers, that could be extremely difficult
> >> or
> >>> infeasible for companies to coordinate without treating it like a
> >> migration
> >>> to a new technology.
> >>>
> >>> At the same time, do we want to be completely closed to the possibility
> >>> that a breaking change could be required at some point in the future? If
> >> a
> >>> circumstance like that appears, those are the kinds of situations that
> >> can
> >>> lead to a fork. Are there certain kinds of breaking changes that are more
> >>> acceptable than others?
> >>>
> >>> Also, if the forward looking plan is to never introduce breaking changes,
> >>> when *would* we ever cut a Pulsar 3.x release?  Do we have any criteria
> >> on
> >>> what kinds of changes would necessitate cutting a new major release but
> >>> would still be considered acceptable by the community?
> >>>
> >>> --
> >>> Devin Bost
> >>> Sent from mobile
> >>> Cell: 801-400-4602
> >>>
> >>> On Sat, Oct 8, 2022, 2:14 PM Rajan Dhabalia <rdhaba...@apache.org>
> >> wrote:
> >>>
> >>>> This sounds like the current state of Apache Pulsar has a lot of issues
> >>> and
> >>>> it requires fundamental design changes to make it promising which is
> >>>> definitely not true and I disagree with it. And I would be careful
> >>>> comparing with Kafka as I still don't think the Kafka release has
> >>> anything
> >>>> to do with Pulsar's improvement. I would still recommend to list down
> >> all
> >>>> the changes at one place so we can bring everyone on the same page.
> >>> discuss
> >>>> as a community and we make sure existing usecases continue using Pulsar
> >>> and
> >>>> not try to find Pulsar alternatives with incorrect disruption
> >> impression
> >>>> and efforts they might have to put to upgrade or maintain pulsar.
> >>>>
> >>>> Thanks,
> >>>> Rajan
> >>>>
> >>>> On Fri, Oct 7, 2022 at 7:49 PM Lari Hotari <lhot...@apache.org> wrote:
> >>>>
> >>>>> We could all have our own favorite names for this work. :)
> >>>>>
> >>>>> There's advice that you should disrupt yourself before someone
> >> disrupts
> >>>>> you.
> >>>>> Shouldn't we follow that advice for Apache Pulsar? We can disrupt
> >>> Pulsar
> >>>>> together with our Apache hats on. The catch is that since we are
> >> doing
> >>>>> this, we will be able to learn and improve Pulsar so that we stay
> >> ahead
> >>>> of
> >>>>> competition. Pulsar was long ways ahead of competition for so many
> >>> years,
> >>>>> but Kafka is finally catching up. Did Kafka surpass Pulsar in some
> >>>> aspects
> >>>>> with the recent 3.3 release, where Kraft became GA? That's a question
> >>>> that
> >>>>> many might be asking. Why wouldn't we rev up Pulsar's engine and show
> >>> the
> >>>>> tail lights to Kafka?
> >>>>>
> >>>>> We don't have to have deadlines or any restrictions like that right
> >>> now.
> >>>>> The sky's the limit.
> >>>>> Linus Torvalds has written a book called "Just for fun". I got my
> >> copy
> >>> of
> >>>>> this book signed by Linus himself in year 2000 at an event that the
> >>> book
> >>>>> publisher had organized in Finland.
> >>>>>
> >>>>> What if we did this "just for fun"? The intention could also be to
> >> beat
> >>>>> Kafka, but that could be a boring goal for many. What if we could
> >>> unleash
> >>>>> some talent that is among us and hasn't had a chance to show its full
> >>>>> potential? Opensource is about joy. It is about welcoming everyone to
> >>>> join.
> >>>>> Opensource should be egoless, although we must all admit that we
> >> don't
> >>>>> succeed in that aspect. We must fight our biases.
> >>>>>
> >>>>> Jarek Potiuk explains the importance of being welcoming for success
> >> at
> >>>>> Apache, in a 3-minute YouTube interview:
> >>>>> https://www.youtube.com/watch?v=Dx5kQnVFo7E
> >>>>> This interview is about Jarek's blog post "Success at Apache:
> >> Welcoming
> >>>>> communities strengthens the Apache way":
> >>>>>
> >>>>>
> >>>>
> >>>
> >> https://news.apache.org/foundation/entry/success-at-apache-welcoming-communities
> >>>>> I was pleased to meet Jarek at ApacheCon among so many other
> >> welcoming
> >>>>> personalities of the Apache community and the Apache Pulsar
> >> community.
> >>>>>
> >>>>> Goals have to be ambitious. What if we set the bar really high?
> >>>>> Apache Pulsar with 10 million topics in a cluster?
> >>>>> Why not go up to 100 million topics?
> >>>>> Just for fun. :)
> >>>>>
> >>>>> -Lari
> >>>>>
> >>>>> On 2022/10/07 22:53:59 Matteo Merli wrote:
> >>>>>> I actually disagree with the term "Pulsar Next Gen", because I
> >>> haven't
> >>>>>> seen any proposal for which that would make sense to me to be
> >> called
> >>>>>> so.
> >>>>>>
> >>>>>> Rajan: That's the whole point of breaking it down. If you
> >> accumulate
> >>>>>> many "big" changes it introduces a lot of risk for instabilities
> >> and
> >>>>>> incompatibilities. Breaking it down in multiple steps helps to see
> >>> the
> >>>>>> incremental changes and introduced them in a phased manner.
> >>>>>>
> >>>>>>
> >>>>>> --
> >>>>>> Matteo Merli
> >>>>>> <matteo.me...@gmail.com>
> >>>>>>
> >>>>>> On Fri, Oct 7, 2022 at 3:37 PM Rajan Dhabalia <
> >> rdhaba...@apache.org>
> >>>>> wrote:
> >>>>>>>
> >>>>>>> Hi,
> >>>>>>>
> >>>>>>> Can we get the list of changes at one place which we are planning
> >>> to
> >>>>> get as
> >>>>>>> part of 3.0. One thing I would like to see as a part of a major
> >>>>> release, it
> >>>>>>> CAN NOT impact existing usecases and users in any way which can
> >>> force
> >>>>> them
> >>>>>>> to upgrade the client library. Applications using < 3.0 version
> >>>> should
> >>>>>>> continue getting all the client and server side enhancements and
> >>> bug
> >>>>> fixes.
> >>>>>>> Failing to provide bug-fixes and features to client < 3.0 means
> >> we
> >>>> are
> >>>>>>> forcing them to upgrade client version by putting efforts to
> >> handle
> >>>> all
> >>>>>>> incompatibility. and that's something we should definitely
> >> prevent
> >>>>> because
> >>>>>>> Apache Pulsar is used by many large scale business usecases and
> >> we
> >>>>> should
> >>>>>>> accommodate and motivate them to continue using Apache Pulsar.
> >>>>>>> I understand as a Pulsar community we should always try to
> >> progress
> >>>> and
> >>>>>>> build better but not at the cost of losing or reducing the Apache
> >>>>> Pulsar
> >>>>>>> community.
> >>>>>>>
> >>>>>>> Thanks,
> >>>>>>> Rajan
> >>>>>>>
> >>>>>>>
> >>>>>>> On Fri, Oct 7, 2022 at 12:41 PM Lari Hotari <lhot...@apache.org>
> >>>>> wrote:
> >>>>>>>
> >>>>>>>> Thank you, Matteo. I agree that features should be delivered
> >>>>> continuously
> >>>>>>>> when that is possible. In this case, that might not apply.
> >>>>>>>>
> >>>>>>>> I also agree that calling this Pulsar 3.0 isn't necessarily
> >>> aligned
> >>>>> with
> >>>>>>>> PIP-175 since an LTS release is when the major version is
> >> bumped.
> >>>>> I'm fine
> >>>>>>>> in calling this "Pulsar Next Gen" or something that calls out
> >>> that
> >>>>> this is
> >>>>>>>> planning for making a major leap in Pulsar.
> >>>>>>>>
> >>>>>>>> There are several unresolved issues with PIP-45 and the Pulsar
> >>> Load
> >>>>>>>> balancer. The previously referred email threads contain a lot
> >> of
> >>>>> context to
> >>>>>>>> this. Resolving the issues efficiently will most likely result
> >> in
> >>>>> breaking
> >>>>>>>> changes, which will be the reason why it deserves a major
> >> version
> >>>>> upgrade.
> >>>>>>>>
> >>>>>>>> We have discussed it before that it's crucial to have a path to
> >>>>> migrate
> >>>>>>>> users when there are breaking changes. This should be covered
> >> in
> >>>> any
> >>>>> of the
> >>>>>>>> solutions that are introduced. Optimally, users of Pulsar would
> >>> be
> >>>>> able to
> >>>>>>>> upgrade seamlessly to Pulsar Next Gen / Pulsar 3.0, but rolling
> >>>> back
> >>>>> might
> >>>>>>>> not be directly supported.
> >>>>>>>>
> >>>>>>>> I am welcoming everyone to join this planning for the Apache
> >>> Pulsar
> >>>>> Next
> >>>>>>>> Gen architecture. Please check the first email in this thread
> >> for
> >>>>> details
> >>>>>>>> of context, and start participating and contributing today. The
> >>>> best
> >>>>> way to
> >>>>>>>> contribute is to participate in the email threads, since they
> >>>> contain
> >>>>>>>> details with better context.
> >>>>>>>>
> >>>>>>>> -Lari
> >>>>>>>>
> >>>>>>>> On 2022/10/07 18:03:00 Matteo Merli wrote:
> >>>>>>>>> Given the past experiences and the discussions that already
> >>>>> happened
> >>>>>>>>> around "PIP-175: Extend time based release process", the idea
> >>> is
> >>>> to
> >>>>>>>>> detach the 3.0 from "big-features" items or "incompatible
> >>>> changes".
> >>>>>>>>>
> >>>>>>>>> The changes are going to get included as they are ready,
> >> within
> >>>>>>>>> feature releases, and in a fully compatible way. We don't
> >> need
> >>> to
> >>>>>>>>> group them together and create unnecessary risk for the
> >> release
> >>>>>>>>> schedule and the users.
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> --
> >>>>>>>>> Matteo Merli
> >>>>>>>>> <matteo.me...@gmail.com>
> >>>>>>>>>
> >>>>>>>>> On Fri, Oct 7, 2022 at 10:47 AM Lari Hotari <
> >>> lhot...@apache.org>
> >>>>> wrote:
> >>>>>>>>>>
> >>>>>>>>>> Hi all,
> >>>>>>>>>>
> >>>>>>>>>> Greeting from ApacheCon North America 2022 from New
> >> Orleans!
> >>>>>>>>>> We had a great conference with a dedicated Pulsar track.
> >>> Thanks
> >>>>> to all
> >>>>>>>> presenters and everyone who attended. The talks weren't
> >> recorded,
> >>>>> but the
> >>>>>>>> slides will be later on posted on the conference website [1].
> >>>>>>>>>>
> >>>>>>>>>> At ApacheCon there were several presentations about "the
> >>> Apache
> >>>>> way"
> >>>>>>>> and what that means in practice. Based on that, we all know
> >> that
> >>> no
> >>>>> person
> >>>>>>>> is nominated as the CTO of Apache Pulsar who decides on Pulsar
> >>> 3.0
> >>>>> and when
> >>>>>>>> that happens. It's us, the community, that serve that role
> >>>> together.
> >>>>> We
> >>>>>>>> come together as individuals with the Apache hat on. Everyone
> >> is
> >>>>> equal in
> >>>>>>>> the community, regardless of whether they are contributors,
> >>>>> committers or
> >>>>>>>> PMC members.
> >>>>>>>>>> We welcome everyone to participate. The small detail about
> >>>> voting
> >>>>>>>> shouldn't stop anyone from participating in any aspects of the
> >>>>> planning for
> >>>>>>>> the roadmap.
> >>>>>>>>>>
> >>>>>>>>>> I'll like to get the discussions going for Pulsar 3.0. We
> >>> don't
> >>>>> need a
> >>>>>>>> separate decision to start planning that. Please correct me if
> >>> I'm
> >>>>> wrong or
> >>>>>>>> if you have a different opinion.
> >>>>>>>>>>
> >>>>>>>>>> There are a few previous discussion threads that are
> >> related
> >>> to
> >>>>> Pulsar
> >>>>>>>> 3.0 planning.
> >>>>>>>>>> If you are interested in getting involved with Apache
> >> Pulsar
> >>>> 3.0
> >>>>>>>> planning, I think that it makes sense for you to read these
> >>> threads
> >>>>>>>> carefully and reply to them. Please also suggest what you think
> >>>>> makes sense.
> >>>>>>>>>>
> >>>>>>>>>> PIP-45 related:
> >>>>>>>>
> >> https://lists.apache.org/thread/tvco1orf0hsyt59pjtfbwoq0vf6hfrcj
> >>>>>>>>>> Pulsar Load balancer / namespace bundle related:
> >>>>>>>>>>
> >>>> https://lists.apache.org/thread/roohoc9h2gthvmd7t81do4hfjs2gphpk
> >>>>>>>>>> renaming topics:
> >>>>>>>>>>
> >>>> https://lists.apache.org/thread/vrr75rrh4trqlp14objh3snlfvmzdrp2
> >>>>>>>>>> backpressure:
> >>>>>>>>
> >> https://lists.apache.org/thread/v7xy57qfzbhopoqbm75s6ng8xlhbr2q6
> >>>>>>>>>>
> >>>>>>>>>> Long list of Metadata inconsistency issues by Zac Bentley:
> >>>>>>>>>> https://github.com/apache/pulsar/issues/12555
> >>>>>>>>>> That would be a good starting point to understanding the
> >> data
> >>>>>>>> inconsistency issues related to current PIP-45 design. Perhaps
> >>>> those
> >>>>> could
> >>>>>>>> be addressed already before Pulsar 3.0?
> >>>>>>>>>>
> >>>>>>>>>> I'm looking forward to everyone's participation in the
> >> Apache
> >>>>> Pulsar
> >>>>>>>> 3.0 planning discussions.
> >>>>>>>>>>
> >>>>>>>>>> Best Regards,
> >>>>>>>>>>
> >>>>>>>>>> -Lari
> >>>>>>>>>>
> >>>>>>>>>> 1 - https://www.apachecon.com/acna2022/schedule.html
> >>>>>>>>>
> >>>>>>>>
> >>>>>>
> >>>>>
> >>>>
> >>>
> >>
>

Reply via email to