Email Record: Communication and agreement abstractions for fault-tolerant asynchronous distributed systems /