RELACS: A communications infrastructure for constructing reliable applications in large-scale distributed systems