Session Engine one thread per connection is stupid threads are generally stupid in most cases go for nonblocking last not least, nonblocking sockets blocking socket: call write(2), won't return unless it has written all data or an error occured nonblocking socket: returns as soon as it cannot proceed immediately need to do buffer management and write the remaining bytes later