I have read several articles and books about stream processing and they all assume all past data will be available in the stream when doing the event sourcing.
Therefore, we can do real time queries by building tables like KSQL.
But the reality is that the data in the stream is not always there from the past to the present. In the case of Kinesis, the default is to keep data for 24 hours, up to seven days.
There are two scenarios that bother me.
- When the microservice system has been running for a while and then decides to do a streaming architecture such as Flink or Kafka Stream, how do we fill in the streaming data that was not there before?
- When the streaming data will only be kept for a period of time, say one day, is there still a way to get the status of one day ago by creating a table?