Event Driven IO Take a bunch of file descriptors we are interested in. Call something to ask if we can read or write on them (poll, select, libevent, libev, etc.) Do exactly one read or write on anything ready Update your state of the world based on what you read and wrote. Repeat ad infinitum