The problem is that the underlying vendor &quot;operating system&quot; forces you to use events and callbacks for everything.  Disregarding sockets for the moment, we currently can&#x27;t even run a basic Python script that loops flashing an LED and pausing for 10 seconds.  That&#x27;s because the vendor OS expects you to return very quickly from any user code.<p>So, the first thing we need to do is make the entire system compatible with the Python execution model, ie no callbacks.  As part of this it just so happens that sockets become synchronous as well.<p>Once this is done we have a solid (and conventional, not forced upon us by the vendor) foundation to work from.  Then we can build the Python way of doing async IO if needed using the asyncio framework (and perhaps the new async&#x2F;await keywords).