Hello friends, I am designing a new streaming component and am looking at how to use Kafka Streams.
I need some guidance with the appropriate flow. *Problem to solve:* The problem I am working on is I have a large group of riders and drivers. I would like to match available riders to nearby drivers. (For simplicity think of Uber or Lyft) The goal is to have the drivers within a certain delta of gps coordinates be notified of a potential rider. For example, a rider requests to be picked up at location: 37.788517, -122.406812 I would like to select the nearby drivers to send notifications of an available match by selecting nearby drivers within a range latitude < 37.798517 && latitude > 37.778517 && longitude < -122.4106812 && longitude > -122.3906812 *Note this is a POC and would prefer to select the most nearby drivers, then after lookup the address and use my own graph for streets and calculate the shortest path on my own. I would like to have 3 initial topics: riders, drivers, and paired-onride What is the best way to do this with Kafka Streams? *What I have tried or considered:* I was considering storing drivers in a Ktable and having riders in a KStream and joining them. But I don't think this will work because the join is dependent on the key, which in this case I was looking more for a select statement to look for a range of gps coordinates as noted above. The drivers location will be updated periodically. I was also thinking of filtering the KStream based on the gps range and making a smaller subselection of available drivers within a certain distance to a rider. At this point I am seeking some guidance and if this is not an ideal use-case that is also ok. Thanks for any information or direction you can provide. -Farhon