IT'S CERTAINLY TRUE that building distributed systems is a difficult business. This is due to the inherent and accidental complexity of both the design and implementation of networked software ...