" Tinder App " scalability concerns


#1

Hello Guys, I’m building an “generic tinder” mobile app where I must find people that are close to me (like 100m, 1km, etc).
Could you guys tell me if im going in the right direction?
I’m using Elastic Search to check distance, it’s really cool, with 800 users , it can calculate who is under 100m radius in like 3ms.
the problem is : synchronize the position of the users with the meteor server and then the ElasticSearch server.
On each client, I watch the mobile’s GPS position and whenever it changes , I call a server method that updates the mongo database and also sends an update request to ElasticSearch server to update the position there too. (I’m using GeoHash with 3m precision)
I’m concerned about scalability issues.

  • Should the clients send their position directly to the ElasticSearch server?
    If so, how can I authenticate them?
  • On the mobile client app, should I watch for every single change on position or code some better algorithm, like sending from period in period and then change the period according to the user’s position’s variation from the last update?
  • Do you have any other approaches on how to build this kind of relation client-server?
    Thanks! I Really need your help, guys!

#2

update position when they move X amount, no reason to update more than that. Having a threshold will keep you from thrashing yourself with meaningless updates