use lwt.syntax
regenerate
report some errors and stats instead of throwing exceptions
rename s_n -> log
handle exceptions on the wire (such as connection drops, auth failures) gracefully
guard writes with exceptions