My team has been running AsyncIO in production for over 2 years now and the only thing I can say about my experience with it is: "Oh boy, what a rollercoaster of feelings". I've experienced laughs and tears, sweat and blood but also sang songs of glory. AsyncIO is currently the biggest buzzword in the Python world advertised as a silver bullet capable of solving all Python's shortcomings in the field of performance. However, it also brings a burden of being a completely new approach with a fresh implementation which is not often mentioned and taken into consideration. In some of my team's projects we've achieved a great success thanks to AsyncIO, but there's been a few where we decided to get rid of it and replace it with a more traditional fork-join architecture. I'd like to share my experience with AsyncIO, tell some War Stories and discuss which projects it suits perfectly and which ones should avoid it.