gianm commented on pull request #11917:
URL: https://github.com/apache/druid/pull/11917#issuecomment-967746282


   Contrarian opinion: I don't see how deferring the breaking change for 1 
release helps anyone. People still need to do the work before they can upgrade 
to _some_ version, whether it's 0.23 or 0.24. And they won't be that far apart. 
So why not do the breaking change now?
   
   The rest of this comment is a bit of soapboxing, so feel free to ignore it 
if you aren't into that sort of thing.
   
   The soapboxy statement is that I'm sympathetic to the Linux kernel driver 
school of thought when it comes to query extensions like new query types, 
filters, aggregators, etc. You can read about that school of thought here: 
https://www.kernel.org/doc/html/latest/process/stable-api-nonsense.html. 
There's a very abbreviated TLDR right there in the URL.
   
   In our situation, maintaining stability for query extensions has upsides 
that affect a relatively small number of sites where there are site-specific 
query extensions in play, but has downsides that affect all sites.
   
   The main downside of maintaining stable interfaces is that it creates extra 
work. For example: it's common for us to add a method that gets some new 
information that query engines will use to make better decisions. Supporting a 
stable interface means we need to include handling for that information being 
unknown. On the other hand, if we break the interface then we can also get rid 
of the code that handles the "unknown" case. It simplifies the core, reduces 
the surface area that needs to be tested and maintained, and makes the user 
experience more uniform, all of which are good things.
   
   Being more free with changing these interfaces would help us evolve them 
faster, and would benefit the majority of sites that _don't_ have their own 
site-specific extensions. And just like in Linux, if people with site-specific 
extensions get tired of maintaining them, that problem can be solved by 
contributing them to mainline in extensions-contrib.
   
   Btw, a coda. Our equivalent of the Linux kernel _syscall_ API (which is 
famously stable) is our HTTP APIs and query API. I am sympathetic to the Linux 
view there too, and I kind of wish they were _more_ stable than they are.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to