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