Code Examples¶
You can find Streams code examples in the Apache Kafka and Confluent GitHub repositories.
The Confluent Kafka Streams examples are located here. These examples demonstrate the use of Java 8 lambda expressions (which simplify the code significantly), show how to read/write Avro data, and how to implement end-to-end integration tests using embedded Kafka clusters.
The Apache Kafka Streams examples are located at https://github.com/apache/kafka/streams/examples/. These examples demonstrate the use of the Kafka Streams DSL and the low-level Processor API, including typed and untyped examples.
Getting started examples¶
Java¶
With lambda expressions for Java 8+:
- WordCountLambdaExample
- AnomalyDetectionLambdaExample
- GlobalKTablesExample
- MapFunctionLambdaExample
- PageViewRegionLambdaExample
- UserRegionLambdaExample
- WikipediaFeedAvroLambdaExample
Without lambda expressions for Java 7+:
Interactive queries examples¶
Since Confluent Platform 3.1+ and Kafka 0.10.1+, it is possible to query state stores created via the Kafka Streams DSL and the Processor API. Please refer to Interactive Queries for further information.
End-to-end application examples¶
These demo applications use embedded instances of Kafka, ZooKeeper, and Confluent Schema Registry. They are implemented as integration tests.
Java¶
With lambda expressions for Java 8+:
- WordCountLambdaIntegrationTest
- FanoutLambdaIntegrationTest
- GenericAvroIntegrationTest
- GlobalKTablesExampleTest
- HandlingCorruptedInputRecordsIntegrationTest
- MapFunctionLambdaIntegrationTest
- MixAndMatchLambdaIntegrationTest – how to mix the DSL and the Processor API
- SpecificAvroIntegrationTest
- StateStoresInTheDSLIntegrationTest – how to use state stores in the DSL
- StreamToStreamJoinIntegrationTest
- StreamToTableJoinIntegrationTest
- TableToTableJoinIntegrationTest
- UserCountsPerRegionLambdaIntegrationTest
Without lambda expressions for Java 7:
Scala¶
- StreamToTableJoinScalaIntegrationTest
- ProbabilisticCountingScalaIntegrationTest - demonstrates how to probabilistically count items in an input stream by implementing a custom state store that is backed by a Count-Min Sketch data structure