Sounds reasonable.
Thanks,
Eno
> On May 11, 2017, at 7:39 AM, Ismael Juma <ism...@juma.me.uk> wrote:
>
> Thanks for the proposal Guozhang. This sounds good to me.
>
> Ismael
>
> On Thu, May 11, 2017 at 6:02 AM, Guozhang Wang <wangg...@gmail.com> wrote:
>
>> Hello folks,
>>
>> As we are approaching the feature freeze deadline of 0.11.0.0, one thing I
>> realized is that currently the Streams public APIs are still marked as
>> "Unstable", which is to indicate that the API itself does not provide
>> guarantees about backward compatibility across releases. On the other hand,
>> since Streams have now been widely adopted in production use cases by many
>> organizations, we are in fact evolving its APIs in a much stricter manner
>> than "Unstable" allows us: for all the current Streams related KIP
>> proposals under discussions right now [1], people have been working hard to
>> make sure none of them are going to break backward compatibility in the
>> coming releases. So I think it would be a good timing to change the Streams
>> API annotations.
>>
>> My proposal would be the following:
>>
>> 1. For "o.a.k.streams.errors" and "o.a.k.streams.state" packages: remove
>> the annotations except `StreamsMetrics`.
>>
>> 2. For "o.a.k.streams.kstream": remove the annotations except "KStream",
>> "KTable", "GroupedKStream", "GroupedKTable", "GlobalKTable" and
>> "KStreamBuilder".
>>
>> 3. For all the other public classes, including "o.a.k.streams.processor"
>> and the above mentioned classes, change the annotation to "Evolving", which
>> means "we might break compatibility at minor releases (i.e. 0.12.x, 0.13.x,
>> 1.0.x etc) only".
>>
>>
>> The ultimate goal is to make sure we won't break anything going forward,
>> hence in the future we should remove all the annotations to make that
>> clear. The above changes in 0.11.0.0 is to give us some "buffer time" in
>> case there are some major API change proposals after the release.
>>
>> Would love to hear your thoughts.
>>
>>
>> [1]
>>
>> KIP-95: Incremental Batch Processing for Kafka Streams
>> <https://cwiki.apache.org/confluence/display/KAFKA/KIP-
>> 95%3A+Incremental+Batch+Processing+for+Kafka+Streams>
>>
>> KIP-120: Cleanup Kafka Streams builder API
>> <https://cwiki.apache.org/confluence/display/KAFKA/KIP-
>> 120%3A+Cleanup+Kafka+Streams+builder+API>
>>
>> KIP-123: Allow per stream/table timestamp extractor
>> <https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=68714788
>>>
>>
>> KIP 130: Expose states of active tasks to KafkaStreams public API
>> <https://cwiki.apache.org/confluence/display/KAFKA/KIP+
>> 130%3A+Expose+states+of+active+tasks+to+KafkaStreams+public+API>
>>
>> KIP-132: Augment KStream.print to allow extra parameters in the printed
>> string
>> <https://cwiki.apache.org/confluence/display/KAFKA/KIP-
>> 132+-+Augment+KStream.print+to+allow+extra+parameters+in+
>> the+printed+string>
>>
>> KIP-138: Change punctuate semantics
>> <https://cwiki.apache.org/confluence/display/KAFKA/KIP-
>> 138%3A+Change+punctuate+semantics>
>>
>> KIP-147: Add missing type parameters to StateStoreSupplier factories and
>> KGroupedStream/Table methods
>> <https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=69408481
>>>
>>
>> KIP-149: Enabling key access in ValueTransformer, ValueMapper, and
>> ValueJoiner
>> <https://cwiki.apache.org/confluence/display/KAFKA/KIP-
>> 149%3A+Enabling+key+access+in+ValueTransformer%2C+ValueMapper%2C+and+
>> ValueJoiner#KIP-149:EnablingkeyaccessinValueTransformer,ValueMapper,
>> andValueJoiner-RejectedAlternatives>
>>
>> KIP-150 - Kafka-Streams Cogroup
>> <https://cwiki.apache.org/confluence/display/KAFKA/KIP-
>> 150+-+Kafka-Streams+Cogroup>
>>
>> KIP 155 - Add range scan for windowed state stores
>> <https://cwiki.apache.org/confluence/display/KAFKA/KIP+
>> 155+-+Add+range+scan+for+windowed+state+stores>
>>
>> KIP 156 Add option "dry run" to Streams application reset tool
>> <https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=69410150
>>>
>>
>>
>> --
>> -- Guozhang
>>