I'm presently designing an IoT Event Hub architecture within which all connected IoT devices that publish messages to the Event Hub, will include the Latitude and Longitude of the originating device as part of the message.
I have a separate API that needs to be able to retrieve messages based upon supplying a Latitude and Longitude and radius from that point, with the object of the API Get, being to return a collection of messages that are within the said radius from the said geography point.
I was hoping that there's be a better method than having Worker Roles retrieve all messages and put the data into SQL Server so that the API could do a 'Nearest Neighbour' spatial query (the api needs to return such results every determinate (say 5 seconds) so that if new devices enter the zone described, that they are also included in the results.
Is there any way of retrieving messages from the Event Hub that fit into a search criteria like this, if so, how, and if not, what would be the recommended best practice of getting the messages into a Database so that such a spatial query could be undertaken as part of the procedure of returning a collection of results?