Multi-threaded executors frequently just make things complicated. Use a local executor so you do not have to make everything Sync and Send.