Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The below tables will resume all new and existing method methods :

KStream

methodAdded for this KIP ?Object/method used for node nameUsed for repartition topic nameUsed for state store name ?
filter(Predicate, Named)YESstatic Named#as(String)N/AN/A
filterNot(Predicate, Named)YESstatic Named#as(String)N/AN/A
selectKey(KeyValueMapper, Named)YESstatic Named#as(String)N/AN/A
map(KeyValueMapper, Named)YESstatic Named#as(String)N/AN/A
mapValues(ValueMapper, Named)YESstatic Named#as(String)N/AN/A
mapValues(ValueMapperWithKey, Named)YESstatic Named#as(String)N/AN/A
flatMap(KeyValueMapper, Named)YESstatic Named#as(String)N/AN/A
flatMapValues(ValueMapper, Named)YESstatic Named#as(String)N/AN/A
flatMapValues(ValueMapperWithKey, Named)YESstatic Named#as(String)N/AN/A
print(Printed)NOstatic Printed#as(String)N/AN/A
foreach(ForeachAction, Named)YESstatic Named#as(String)N/AN/A
peek(ForeachAction, Named)YESstatic Named#as(String)N/AN/A
branch(Named, Predicate...)YESstatic Named#as(String)N/AN/AYESstatic Named#as(String)N/AN/A
through(String, Produced)NOstatic Produced#as(String)N/AN/A
to(String, Produced)NOstatic Produced#as(String)N/AN/A
to(TopicNameExtractor, Produced)NOstatic Produced#as(String)N/AN/A
transform(TransformerSupplier, Named named, String... )YESstatic Named#as(String)N/AN/A
transformValues(ValueTransformerSupplier, Named named, String...)YESstatic Named#as(String)N/AN/A
transformValues( ValueTransformerWithKeySupplier, Named named, String...)YESstatic Named#as(String)N/AN/A
process(ProcessorSupplier, Named named, String...)YESstatic Named#as(String)N/AN/A
join( KStream, ValueJoiner, JoinWindows windows, Joined)NOstatic Joined#named(final String name)static Joined#named(final String name)static Joined#named(final String name)
leftJoin(KStream, ValueJoiner, JoinWindows, Joined)NOstatic Joined#named(final String name)static Joined#named(final String name)static Joined#named(final String name)
outerJoin(KStream, ValueJoiner, JoinWindows, Joined)NOstatic Joined#named(final String name)static Joined#named(final String name)static Joined#named(final String name)
join(KTable, ValueJoiner, Joined)NOstatic Joined#named(final String name)static Joined#named(final String name)N/A
leftJoin(KTable, ValueJoiner, Joined)NOstatic Joined#named(final String name)static Joined#named(final String name)N/A
join(GlobalKTable, KeyValueMapper, ValueJoiner)NO?????????
leftJoin(GlobalKTable, KeyValueMapper, ValueJoiner)NO?????????

...

methodAdded for this KIP ?Object/method used for node nameUsed for repartition topic nameUsed for state store name ?
filter(Predicate, Named)YESstatic Named#as(String)N/Astatic Named#as(String)
filter(Predicate, Named, Materialized)YESstatic Named#as(String)N/AMaterialized#as(String)
filterNot(Predicate, Named)YESstatic Named#as(String)N/Astatic Named#as(String)
filterNot(Predicate, Named, Materialized)YESstatic Named#as(String)N/AMaterialized#as(String)
mapValues(ValueMapper, Named)YESstatic Named#as(String)N/Astatic Named#as(String)
mapValues(ValueMapperWithKey, Named)YESstatic Named#as(String)N/Astatic Named#as(String)
mapValues(ValueMapper, Named named, Materialized)YESstatic Named#as(String)N/Astatic Materialized#as(String)
mapValues(ValueMapperWithKey, Named named, materializedMaterialized);YESstatic Named#as(String)N/Astatic Materialized#as(String)
suppress(Suppressed)NOSuppressed#withName(String)N/AN/A
transformValues(ValueTransformerWithKeySupplier, Named, String...)YESstatic Named#as(String)N/Astatic Named#as(String)
transformValues(ValueTransformerWithKeySupplier, Materialized, Named named, String...)YESstatic Named#as(String)N/Astatic Materialized#as(String)
groupBy(KeyValueMapper, KeyValue, Grouped)NOstatic Grouped#as(String)static Grouped#as(String)N/A
join(KTable, ValueJoiner, Named)YESstatic Named#as(String)N/Astatic Named#as(String)
join(KTable, ValueJoiner, Named named, Materialized)YESstatic Named#as(String)N/Astatic Materialized#as(String)
leftJoin(KTable, ValueJoiner, Named);YESstatic Named#as(String)N/Astatic Named#as(String)
leftJoin(KTable, ValueJoiner, Named named, Materialized)YESstatic Named#as(String)N/Astatic Materialized#as(String)
outerJoin(KTable, ValueJoiner, Named);YESstatic Named#as(String)N/Astatic Named#as(String)
outerJoin(KTable, ValueJoiner, Named named, Materialized)YESstatic Named#as(String)N/Astatic Materialized#as(String)


KGroupedStream

WIP

KGroupedTable

WIP

TimeWindowedKStream


methodAdded for this KIP ?Object/method used for node nameUsed for repartition topic nameUsed for state store name ?
count(Named)YESstatic Named#as(String)N/A
static Named#as(String)
NO
count(Named, Materialized)YESstatic Named#as(String)N/AMaterialized#as(String)
aggregate
reduce(
Initializer
Reducer,
Aggregator,
Named)YESstatic Named#as(String)N/ANO
reduce(Reducer, Named, Materialized)YESstatic Named#as(String)N/AMaterialized#as(String)
aggregate(Initializer, Aggregator, Named)YESstatic Named#as(String)N/ANO
aggregate(Initializer, Aggregator, Named, Materialized)YESstatic Named#as(String)N/AMaterialized#as(String)


KGroupedTable

WIP

TimeWindowedKStream

methodAdded for this KIP ?Object/method used for node nameUsed for repartition topic nameUsed for state store name ?
count(Named)YESstatic Named#as(String)N/Astatic Named#as(String)
count(Named, Materialized)YESstatic Named#as(String)N/AMaterialized#as(String)
aggregate(Initializer, Aggregator, Named)YESstatic Named#as(String)N/Astatic Named#as(String)
aggregate(Initializer, Aggregator, Named, static Named#as(String)aggregate(Initializer, Aggregator, Named, Materialized)YESstatic Named#as(String)N/AMaterialized#as(String)
reduce(Reducer, Named)YESstatic Named#as(String)N/Astatic Named#as(String)
reduce(Reducer, Named, Materialized)YESstatic Named#as(String)N/AMaterialized#as(String)

...

  1. The first proposition was to overload all stateless methods to accept an instance of Described class. However this solution was resulting in modiying a large percentage of the existing KStream and KTable methods.
  2. The second proposition was to add new methods KStreams#as(Described) and KTable#as(Described) while Described class would be used to customized the named of operation defined previously in the stream. However not only this new method was not conservative with the existing APIs but it also introduce some complexities for methods returning Void.


reduce(final Reducer<V> reducer, final Named named)