Consensus in asynchronous distributed systems