An Introduction to Asynchronous Programming with Twisted
The previous chapter derived Twisted’s event-driven architecture from first principles. Twisted programs, like all event-driven programs, make concurrency easier at the expense of making data flow control more difficult. An event-driven program does not automatically have its execution suspend by block I/O when it sends more data than a receiving party can handle. It is the program’s responsibility to determine when this occurs and how to deal with it.