Freshness
A live aggregate is useful only if the system can establish how current it is. This is not necessarily the time when the aggregate last changed: a value may legitimately remain unchanged while the stream continues to progress. How freshness is established therefore needs explicit consideration. In Flink-based processing, event time and watermarks provide a useful notion of progress and may form part of such a mechanism. If the aggregate is served from an external lookup store, however, the freshness definition also needs to account for the path between the stream processor and that store. The required freshness bound should be treated as an application-specific requirement and validated against the end-to-end processing latency.