A computer-implemented method comprising: determining an amount of computing resources in a computing environment, the computing resources comprising a plurality of processor sockets, each processor socket comprising one or more processing cores, each processing core comprising one or more processing threads; allocating a first plurality of processing threads of the computing resources to a first virtual domain; allocating a second plurality of processing threads of the computing resources to a second virtual domain; instantiating a first data structure in the first virtual domain; instantiating a second data structure in the second virtual domain; generating a domain map, the domain map comprising identifiers of virtual domains in the computing environment and data structures instantiated in a given virtual domain, the domain map comprising an identifier of the first virtual domain and an indicator that the first data structure in located in the first virtual domain, the domain map further comprising an identifier of the second virtual domain and an indicator that the second data structure is located in the second virtual domain; wherein each of the virtual domains comprises an inbox comprising a plurality of slots, the method further comprising: receiving a task comprising one or more operations to be performed on the first data structure, comprising receiving the task from a client thread at the first virtual domain in a slot of the inbox, wherein specific slots of the inbox are assigned to particular processing threads of the first plurality of processing threads, wherein, assignment of the task to a slot of the inbox assigned to processing threads comprised in a processing core closer to a processor hosting the client thread is prioritized; determining using the domain map that the first data structure is located in the first virtual domain; sending the task to the first virtual domain; obtaining, by the processing thread to which the slot is assigned, a pointer for the task from the slot; obtaining, by the processing thread, task data from a corresponding memory location; executing, by the processing thread, the task using the first data structure; and placing, by the processing thread, task results in the memory location pointed to by the pointer for retrieval by the application. determining an amount of computing resources in a computing environment, the computing resources comprising a plurality of processor sockets, each processor socket comprising one or more processing cores, each processing core comprising one or more processing threads; allocating a first plurality of processing threads of the computing resources to a first virtual domain; allocating a second plurality of processing threads of the computing resources to a second virtual domain; instantiating a first data structure in the first virtual domain; instantiating a second data structure in the second virtual domain; generating a domain map, the domain map comprising identifiers of virtual domains in the computing environment and data structures instantiated in a given virtual domain, the domain map comprising an identifier of the first virtual domain and an indicator that the first data structure in located in the first virtual domain, the domain map further comprising an identifier of the second virtual domain and an indicator that the second data structure is located in the second virtual domain; wherein each of the virtual domains comprises an inbox comprising a plurality of slots, the method further comprising: receiving a task comprising one or more operations to be performed on the first data structure, comprising receiving the task from a client thread at the first virtual domain in a slot of the inbox, wherein specific slots of the inbox are assigned to particular processing threads of the first plurality of processing threads, wherein, assignment of the task to a slot of the inbox assigned to processing threads comprised in a processing core closer to a processor hosting the client thread is prioritized; determining using the domain map that the first data structure is located in the first virtual domain; sending the task to the first virtual domain; obtaining, by the processing thread to which the slot is assigned, a pointer for the task from the slot; obtaining, by the processing thread, task data from a corresponding memory location; executing, by the processing thread, the task using the first data structure; and placing, by the processing thread, task results in the memory location pointed to by the pointer for retrieval by the application. receiving a task comprising one or more operations to be performed on the first data structure, comprising receiving the task from a client thread at the first virtual domain in a slot of the inbox, wherein specific slots of the inbox are assigned to particular processing threads of the first plurality of processing threads, wherein, assignment of the task to a slot of the inbox assigned to processing threads comprised in a processing core closer to a processor hosting the client thread is prioritized; determining using the domain map that the first data structure is located in the first virtual domain; sending the task to the first virtual domain; obtaining, by the processing thread to which the slot is assigned, a pointer for the task from the slot; obtaining, by the processing thread, task data from a corresponding memory location; executing, by the processing thread, the task using the first data structure; and placing, by the processing thread, task results in the memory location pointed to by the pointer for retrieval by the application.