Making reliable distributed systems in the presence of software errors (2003) [pdf]erlang.org 1rudi-c8ydiscuss