Package org.apache.kafka.streams.kstream
package org.apache.kafka.streams.kstream
Provides a high-level programming model (DSL) to express a (stateful) data flow computation over input
streams
and tables
.
Use StreamsBuilder
as entry for your program.-
ClassDescriptionAggregator<K,
V, VA> TheAggregator
interface for aggregating values of the given key.Branched<K,V> TheBranched
class is used to define the optional parameters when building branches withBranchedKStream
.BranchedKStream<K,V> Branches the records in the original stream based on the predicates supplied for the branch definitions.CogroupedKStream<K,VOut> CogroupedKStream
is an abstraction of multiple grouped record streams ofKeyValue
pairs.Consumed<K,V> TheConsumed
class is used to define the optional parameters when usingStreamsBuilder
to build instances ofKStream
,KTable
, andGlobalKTable
.This interface controls the strategy that can be used to control how we emit results in a processor.ForeachAction<K,V> TheForeachAction
interface for performing an action on akey-value pair
.ForeachProcessor<K,V> GlobalKTable<K,V> GlobalKTable
is an abstraction of a changelog stream from a primary-keyed table.Grouped<K,V> The class that is used to capture the key and valueSerde
s and set the part of name used for repartition topics when performingKStream.groupBy(KeyValueMapper, Grouped)
,KStream.groupByKey(Grouped)
, orKTable.groupBy(KeyValueMapper, Grouped)
operations.Initializer<VA>TheInitializer
interface for creating an initial value in aggregations.Joined<K,V, VO> TheJoined
class represents optional params that can be passed toKStream#join(KTable,...)
andKStream#leftJoin(KTable,...)
operations.The window specifications used for joins.KeyValueMapper<K,V, VR> TheKeyValueMapper
interface for mapping akey-value pair
to a new value of arbitrary type.KGroupedStream<K,V> KGroupedStream
is an abstraction of a grouped record stream ofKeyValue
pairs.KGroupedTable<K,V> KGroupedTable
is an abstraction of a re-grouped changelog stream from a primary-keyed table, usually on a different grouping key than the original primary key.KStream<K,V> KStream
is an abstraction of a record stream ofKeyValue
pairs, i.e., each record is an independent entity/event in the real world.KTable<K,V> KTable
is an abstraction of a changelog stream from a primary-keyed table.Materialized<K,V, S extends StateStore> Used to describe how aStateStore
should be materialized.Merger<K,V> The interface for merging aggregate values forSessionWindows
with the given key.Predicate<K,V> ThePredicate
interface represents a predicate (boolean-valued function) of aKeyValue
pair.Printed<K,V> An object to define the options used when printing aKStream
.Produced<K,V> This class is used to provide the optional parameters when producing to new topics usingKStream.to(String, Produced)
.Reducer<V>TheReducer
interface for combining two values of the same type into a new value.Repartitioned<K,V> This class is used to provide the optional parameters for internal repartition topics.SessionWindowedCogroupKStream
is an abstraction of a windowed record stream ofKeyValue
pairs.SessionWindowedKStream
is an abstraction of a windowed record stream ofKeyValue
pairs.A session based window specification used for aggregating events into sessions.A sliding window used for aggregating events.StreamJoined<K,V1, V2> Class used to configure the name of the join processor, the repartition topic name, state stores or state store names in Stream-Stream join.Suppressed<K>Suppressed.BufferConfig<BC extends Suppressed.BufferConfig<BC>>Marker interface for a buffer configuration that will strictly enforce size constraints (bytes and/or number of records) on the buffer, so it is suitable for reducing duplicate results downstream, but does not promise to eliminate them entirely.Marker interface for a buffer configuration that is "strict" in the sense that it will strictly enforce the time bound and never emit early.TableJoined<K,KO> TheTableJoined
class represents optional parameters that can be passed toKTable#join(KTable,Function,...)
andKTable#leftJoin(KTable,Function,...)
operations, for foreign key joins.TimeWindowedCogroupKStream
is an abstraction of a windowed record stream ofKeyValue
pairs.TimeWindowedKStream<K,V> TimeWindowedKStream
is an abstraction of a windowed record stream ofKeyValue
pairs.The fixed-size time-based window specifications used for aggregations.Transformer<K,V, R> TheTransformer
interface is for stateful mapping of an input record to zero, one, or multiple new output records (both key and value type can be altered arbitrarily).TransformerSupplier<K,V, R> ATransformerSupplier
interface which can create one or moreTransformer
instances.The unlimited window specifications used for aggregations.ValueJoiner<V1,V2, VR> TheValueJoiner
interface for joining two values into a new value of arbitrary type.ValueJoinerWithKey<K1,V1, V2, VR> TheValueJoinerWithKey
interface for joining two values into a new value of arbitrary type.ValueMapper<V,VR> TheValueMapper
interface for mapping a value to a new value of arbitrary type.ValueMapperWithKey<K,V, VR> TheValueMapperWithKey
interface for mapping a value to a new value of arbitrary type.ValueTransformer<V,VR> TheValueTransformer
interface for stateful mapping of a value to a new value (with possible new type).ValueTransformerSupplier<V,VR> AValueTransformerSupplier
interface which can create one or moreValueTransformer
instances.ValueTransformerWithKey<K,V, VR> TheValueTransformerWithKey
interface for stateful mapping of a value to a new value (with possible new type).ValueTransformerWithKeySupplier<K,V, VR> AValueTransformerWithKeySupplier
interface which can create one or moreValueTransformerWithKey
instances.A single window instance, defined by its start and end timestamp.Windowed<K>The result key type of a windowed stream aggregation.The window specification for fixed size windows that is used to define window boundaries and grace period.