If you are familiar with the internals of Ansible Runner, the arguments to a module used to be transferred over as a file. For regular modules, this is STILL true, and we'll continue to support that. However,
I've made it such that for new style (ANSIBLE_MODULE_COMMON) modules the arguments get embedded in the file, meaning there is one less file to transfer, saving an SSH operation, and gaining some speed. Cool thing? Modules didn't have to change at all, because I can transparently replace their guts without anyone knowing about it.
This immediately makes Ansible about 1/5 faster, and I think with work (depending on what evils I decide to do when implementing async, and I am thinking about serious evil), I can get this down a ton smaller.
Basically instead of creating a directory and placing two files, chmod'ing one, and then removing the directory, what if we could transfer just one file TOTAL and execute it and delete hit all in one pass? Ansible becomes 5x faster than it is now. And this is entirely possible.
As a result of this, I've temporarily damaged async, though async was already a brutal hack, so I'll be working on cleaning that up and making a new version of async_wrapper that is more error tolerant and predictable, because I seriously don't remember how it works anymore Users playing with the latest devel branch may wish to comment out any "async:" stuff in the near term. The new version of async will support the same interface (async_wrapper, etc) but will be implemented totally differently.
I would also like to point folks to the upgraded ./hacking/test-module script, which now does all of this for you too-- and includes a shiny new debugger option (thanks Brad). Note it now takes a "-m" (somewhat like ansible, this is actually the full path to the module) and a "-a" (exactly like Ansible).
Good stuff coming.
Anyhow, if you rely on async, I suggest you use the master branch for the interim or don't update. Otherwise, stuff is totally safe to check out now.
This is the next thing I'm working on and it won't be long. Lots of folks are working on porting modules to the new stuff and that is greatly appreciated, it can only
make Ansible faster and faster!
--Michael