It is not always practical, or even possible, for an application to know what subset of data it will need access to as that data is being published. For example, imagine an application that subscribes to one subset of data during normal operating conditions, but then after an alarm is triggered all data from the past 24 hours is required. Does it make sense for the subscribing application to receive all data at all times just in case the alarm sounds, taking up bandwidth and resources in the subscribing application? Or does it make more sense for the subscribing application to be able to request the data it needs at the moment it needs it, saving bandwidth and resources in the common case? The second option is the most obvious choice, right? We thought so too, which is why with the introduction of Topic Queries in RTI Connext DDS 5.3.0, we allow DataReaders to do just that – send a request to all matching DataWriters for historical data that matches a given filter expression.