Or haskell with STM.
We'd initially talked about what modules and what main threads would be needed, but I started getting paranoid.
So we're going to be using the Python multiprocessing library, and ZeroMQ plus JSON for the communication between the parts.