title: Horizontal scalability for distributed apps, how to achieve that?
body: <p>I would like to disregard web applications here, because to scale them horizontally, ie to use multiple server instances together, it is "sufficient" to just duplicate the server software over the machines and just use a sort of router that forwards requests to the "less busy" server machine.</p>
  
  <p>But what if my server application allows users to engage together in realtime ?</p>
  
  <p>If the response to the request of a certain client X depends on the context of a client Y whose connection is managed by another machine then "inter machines" communication is needed.</p>
  
  <p>I'd like to know the kind of "design solutions" that people has used in such cases.</p>
  
  <p>For example, the people at Facebook must have already encountered such situation when enabling the chat feature of their social app.</p>
  
  <p>Thank you in advance for any advise.</p>