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
>

Reply via email to