To test the Kafka Streams solution for late events, the first thing we need is a late event generator.
To simplify things, our generator will constantly send events at a fixed rate. And from time to time, it will generate a late event. The generator generates events with the following process:
- Each window is 10 seconds long
- It produces one event every second
- The event should be generated in 54th second of each minute, and will be delayed by 12 seconds; that is, it will arrive in the sixth second of the next minute (in the next window)
When we say that the window is of 10 seconds, we mean that we will make aggregations every 10 seconds. Remember that the objective of the test is that the late events are counted in the correct window.
Create the src/main/java/kioto/events directory and, inside it, create a file called EventProducer.java with the contents...