Speaking from my user experience with nim (~1 yr), you don't have to worry about the stability of async related things, they are quite robust.
The things that is not very mature is the GC. I am not talking about the arc one, but the current default one refc. I have a single threaded project around 10k~20k line. When I run tests with defaut gc, 3 to 4 times out of 10, I will run into illegal storage access error. After I moved to boehm, I have never seen the same error again. There are chance that could be my fault, but I believe this is GC bug. For inter-thread communication, I have made a library [https://github.com/jackhftang/threadproxy.nim](https://github.com/jackhftang/threadproxy.nim) to simplify ITC programming. You can take a look at it~ Again, in my practical experience, the little trick to be stable for ITC is to use JSON as data exchange =] When I was developing multi-threaded program, I found that the deep copy of channels do not handle well with null pointer. It seems it will run into problem when there are nil somewhere in data structure. And with JSON you would easily have nil and cyclic structures.
