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 >