Tornado, it was asynchronous in a fashion and — quite simply — worked.
The original prototype that became Blackhole was SimpleMTA — a prototype that was created quickly, to serve a very simple testing purpose that I had for it.
As I needed SimpleMTA to do more, I wrote Blackhole to accomplish that task. I’d been using Tornado a bit and wanted to experiment with it more. Building on top of Tornado created some oddities in how the program was designed and that always irked me.
Between the time of the last 1.8.X and the 2.0 release, I experimented with …