Summary Introduction Kafka Streams — Stream Processing Library on Apache Kafka Why Kafka Streams Multi-Instance Kafka Streams Applications Exactly-Once Support (EOS) KafkaStreams, StreamThreads, StreamTasks and StandbyTasks Demos Creating Topology with State Store with Logging Enabled Stateful Stream Processing Stateful Stream Processing StateStore KeyValueStore SessionStore WindowStore Stores Materialized StoreSupplier KeyValueBytesStoreSupplier SessionBytesStoreSupplier WindowBytesStoreSupplier StoreBuilder TimestampedKeyValueStore ReadOnlyKeyValueStore Stream Processing with Kafka Streams KafkaStreams Topology TopologyDescription Node Processor Sink Source StreamsConfig Configuration Properties Logging KafkaClientSupplier High-Level Streams DSL High-Level Streams DSL StreamsBuilder KStream KTable GlobalKTable KGroupedStream SessionWindowedKStream TimeWindowedKStream KGroupedTable Consumed Produced Grouped Joined Printed KeyValueMapper ValueJoiner ValueTransformer ValueTransformerSupplier ValueTransformerWithKey Transformer TransformerSupplier Windows JoinWindows TimeWindows UnlimitedWindows Window WindowedSerdes Windowed TimeWindowedSerializer Scala API for Kafka Streams ImplicitConversions Serdes Consumed Produced Grouped Materialized Low-Level Processor API Low-Level Processor API Processor Contract — Stream Processing Node AbstractProcessor — Base for Stream Processors ProcessorContext TaskId To Punctuator Contract — Scheduled Periodic Actions Cancellable ProcessorSupplier Contract StreamPartitioner TopicNameExtractor — Dynamic Routing of Output Records RecordContext — Record Metadata TimestampExtractor Contract WallclockTimestampExtractor ExtractRecordMetadataTimestamp FailOnInvalidTimestamp PartitionGrouper Contract DefaultPartitionGrouper StateRestoreCallback BatchingStateRestoreCallback StateRestoreListener AbstractNotifyingBatchingRestoreCallback AbstractNotifyingRestoreCallback Monitoring Kafka Streams Applications StateListener — KafkaStreams State Listener CacheFlushListener StreamsMetrics StreamsMetricsImpl StreamsMetricsThreadImpl TaskMetrics StoreChangeLogger DelegatingStateRestoreListener Testing TopologyTestDriver Internals of Kafka Streams Low-Level Stream Processing Graph InternalTopologyBuilder AbstractNode Processor Sink Source NodeFactory ProcessorNodeFactory SinkNodeFactory SourceNodeFactory InternalTopologyBuilder.TopologyDescription GlobalStore StateStoreFactory High-Level Stream Processing Graph InternalStreamsBuilder StreamsGraphNode BaseJoinProcessorNode BaseRepartitionNode ProcessorParameters GlobalStoreNode GroupedTableOperationRepartitionNode GroupedTableOperationRepartitionNodeBuilder KTableKTableJoinNode OptimizableRepartitionNode ProcessorGraphNode StatefulProcessorNode StateStoreNode StreamSinkNode StreamSourceNode StreamStreamJoinNode StreamTableJoinNode TableProcessorNode TableSourceNode Processors and ProcessorSuppliers KStreamAggProcessorSupplier KStreamBranch KStreamFilterProcessor KStreamFilter KStreamJoinWindowProcessor KStreamPeek KStreamPassThrough KStreamSessionWindowAggregateProcessor KStreamSessionWindowAggregate KStreamTransformProcessor KStreamTransform KStreamTransformValuesProcessor KStreamTransformValues KStreamWindowAggregateProcessor KStreamWindowAggregate KTableSourceProcessor KTableSource KTableSuppressProcessor KTableValueGetter KTableValueGetterSupplier KTableMaterializedValueGetterSupplier KTableSourceValueGetterSupplier KTableKTableAbstractJoinValueGetterSupplier Internals of State Stores WrappedStateStore CachingKeyValueStore CachingSessionStore CachingWindowStore ChangeLoggingKeyValueBytesStore ChangeLoggingSessionBytesStore ChangeLoggingWindowBytesStore MeteredKeyValueStore MeteredSessionStore MeteredWindowStore RocksDBSessionStore RocksDBWindowStore InMemoryKeyValueStore InMemorySessionStore InMemoryWindowStore MemoryLRUCache MeteredKeyValueBytesStore RocksDBStore RocksDBTimestampedStore AbstractStoreBuilder KeyValueStoreBuilder SessionStoreBuilder TimestampedKeyValueStoreBuilder TimestampedWindowStoreBuilder WindowStoreBuilder InMemorySessionBytesStoreSupplier RocksDbKeyValueBytesStoreSupplier RocksDbSessionBytesStoreSupplier RocksDbWindowBytesStoreSupplier KeyValueToTimestampedKeyValueByteStoreAdapter WindowToTimestampedWindowByteStoreAdapter SegmentedBytesStore AbstractRocksDBSegmentedBytesStore RocksDBSegmentedBytesStore TimeOrderedKeyValueBuffer InMemoryTimeOrderedKeyValueBuffer CachedStateStore Logical Plan of Stream Processing Execution ProcessorNode SourceNode SinkNode NodeMetrics InternalTopicConfig WindowedChangelogTopicConfig UnwindowedChangelogTopicConfig WindowedStreamPartitioner WindowedSerializer DefaultKafkaClientSupplier SessionWindow TimeWindow UnlimitedWindow AbstractStream GlobalKTableImpl KGroupedStreamImpl KGroupedTableImpl KStreamAggregate KStreamImpl KTableImpl SessionWindowedKStreamImpl — Default SessionWindowedKStream TimeWindowedKStreamImpl MaterializedInternal KeyValueStoreMaterializer InternalNameProvider Contract GroupedStreamAggregateBuilder KStreamImplJoin StaticTopicNameExtractor ConsumedInternal ProducedInternal QuickUnion TopicsInfo Physical Plan of Stream Processing Execution ProcessorTopology Task AbstractTask StandbyTask StreamTask ProcessorContextImpl ProducerSupplier AssignedTasks AssignedStandbyTasks AssignedStreamsTasks ProcessorNodePunctuator Kafka Streams Execution Engine TaskManager TaskCreator StandbyTaskCreator AbstractTaskCreator StreamThread RebalanceListener StateListener StreamsMetadataState StreamsPartitionAssignor InternalTopicManager AssignmentInfo SubscriptionInfo ClientMetadata TaskAssignor Contract StickyTaskAssignor InternalProcessorContext Contract AbstractProcessorContext GlobalProcessorContextImpl StandbyContextImpl ForwardingDisabledProcessorContext GlobalStreamThread StateConsumer GlobalStateMaintainer GlobalStateUpdateTask RecordCollector RecordCollectorImpl ThreadCache NamedCache Stamped PartitionGroup RecordInfo RecordQueue StampedRecord PunctuationQueue PunctuationSchedule QueryableStoreProvider StateStoreProvider StreamThreadStateStoreProvider GlobalStateStoreProvider WrappingStoreProvider RecordDeserializer StateDirectory ProcessorRecordContext CopartitionedTopicsValidator State (Store) Management StateManager AbstractStateManager ProcessorStateManager GlobalStateManager GlobalStateManagerImpl Checkpointable OffsetCheckpoint ChangelogReader StoreChangelogReader StateRestorer RestoringTasks RecordBatchingStateRestoreCallback CompositeRestoreListener StateRestoreCallbackAdapter