1. servers - These are dedicated nodes running a distributed cache. They will execute jobs that use data from the cache.
2. clients - These are nodes that do not run any cache at all. They submit jobs that will be executed on servers and then get back the results asynchronously. Each job runs on one server node, not on all server nodes.
The DistributedExecution framework seems the best fit for my needs. However, I don't see a way to ensure that jobs submitted by a client is executed only on server nodes but not on any of the other client nodes. What am I missing?