Use an ExecutorService to offload network communications for improved performance