There are a few approaches to this problem:

  • Let clients connect to any node and if they are wrong about that node owning the desired partition, let the node forward the request
  • Use a routing tier that know what node to send the user to which contains partition data
  • Let the client know about the partitioning bounds so they can choose the right node Most distributed data systems use a service called ZooKeeper to keep track of cluster metadata and also updates to the assignment of partitions (an authoratative mapping), actors can subscribe to this information so its knowledge is always up to date.