After hours of hacking through the source code of BoincVM — originally written by David — I finally understood the architecture and workflow. I'm rewriting it (it's now called VMController), fixing bugs and implementing features as part of my B.Tech project, with some help from David (the amazing).
Twisted is awesome, it's an event-driven networking engine written in Python which we're using in VMController.
Why an event-driven engine
Instead of blocking on each connection, the controller reacts to events as they arrive: connections are established, data is read, and tasks are dispatched — all within a single reactor loop. That fits a controller whose whole job is to keep many machines talking to it at once.
Notes
- BoincVM is the starting point; bugs and missing features are being addressed as the rewrite proceeds.
- VMController uses Twisted for its networking layer.
- The work is part of a B.Tech project, carried out with David Garcia Quintas.