A method of routing communication messages in a telecommunication network, comprising: receiving a first communication message in a router processor of a multiprocessor computing system, the first communication message including subscriber identifiers that uniquely identify a subscriber; generating in the router processor a common key based on the subscriber identifiers included in the first communication message; identifying, by the router processor, a first logical scalable unit (804, S2) that includes a first database memory that stores subscriber data relating to the subscriber by querying a data locality table with the common key, the data locality table storing values suitable for use in identifying a component in which data associated with the subscriber or group of subscribers is stored; identifying a first application processor in the multiprocessor computing system that is part of the first logical scalable unit; sending the first communication message from the router processor to the first application processor; receiving in the router processor information identifying that the subscriber data relating to the subscriber is now stored in a second database memory as a result of scaling operations; updating the data locality table in response to receiving the information identifying the second database memory as storing the subscriber data; receiving in the router processor a subsequent communication message; identifying the common key using information included in the subsequent communication message; identifying, by the router processor, a second logical scalable unit (804, S12) that includes a second database memory that stores the subscriber data by using the common key to query the data locality table; identifying a second application processor in the multiprocessor computing system that is part of the second logical scalable unit; and sending the subsequent communication message from the router processor to the second application processor. receiving a first communication message in a router processor of a multiprocessor computing system, the first communication message including subscriber identifiers that uniquely identify a subscriber; generating in the router processor a common key based on the subscriber identifiers included in the first communication message; identifying, by the router processor, a first logical scalable unit (804, S2) that includes a first database memory that stores subscriber data relating to the subscriber by querying a data locality table with the common key, the data locality table storing values suitable for use in identifying a component in which data associated with the subscriber or group of subscribers is stored; identifying a first application processor in the multiprocessor computing system that is part of the first logical scalable unit; sending the first communication message from the router processor to the first application processor; receiving in the router processor information identifying that the subscriber data relating to the subscriber is now stored in a second database memory as a result of scaling operations; updating the data locality table in response to receiving the information identifying the second database memory as storing the subscriber data; receiving in the router processor a subsequent communication message; identifying the common key using information included in the subsequent communication message; identifying, by the router processor, a second logical scalable unit (804, S12) that includes a second database memory that stores the subscriber data by using the common key to query the data locality table; identifying a second application processor in the multiprocessor computing system that is part of the second logical scalable unit; and sending the subsequent communication message from the router processor to the second application processor.