Good article with detailed info.I have few questions.
a) Why did you have to use LRU cache for last known locations of a driver ? Isn’t a simple list for each driver enough ? Is the LRU cache a list of locations for each driver ?
b) I understand the reason for using R Tree.As you are already using redis , did you consider using redis geo module which has the features that you are looking for such as nearest drivers,last known locations as a list in redis etc.