Don't think large scale before you have a product. Chances are you are going to make a lot of bad assumptions early on and you will need to refactor anyway. It's much easier to refactor a smaller project with limited technologies than it is to refactor a large distributed system.