Igor Sapego,

I do not understand how feature masks can remove the necessity of having
protocol versioning.
A protocol for one feature can change from release to release.

чт, 23 янв. 2020 г. в 15:36, Igor Sapego <isap...@apache.org>:

> Hi Igniters,
>
> As we have a lot of different thin clients now, maintained by different
> people, the issues with our backward compatibility mechanism becomes
> more and more prominent.
>
> Currently, we use protocol versioning as the only approach to provide
> backward compatibility. The main issue of this approach is that we can
> not skip some change in protocol and implement i.e. protocol of version
> 1.5 without implementation of 1.4. There are many cases when one may
> want to do so: e.g. when feature provided in 1.4 is not relevant for a
> specific client, or when protocol version 1.5 contains urgent fix or
> feature
> which is easy to implement, but its blocked by not-so-urgent and
> hard-to-implement feature introduced in 1.4.
>
> So to fix this issue I propose to introduce another backward compatibility
> mechanism. The idea is to send "supported features" mask by a client to
> a server, which should be answered with the same mask by the server.
> The resulting set of enabled features is acquired with a simple logical
> "AND"
> operation on these two masks.
>
> This change has many other positive effects:
> 1. It improves readability and also potentially simplifies debugging.
> 2. It gives users the ability to enable or disable features of thin clients
> on both
> server and client as they desire.
>
> What are your thoughts guys?
>
> Best Regards,
> Igor
>


-- 

Best regards,
Alexei Scherbakov

Reply via email to