Towards Robust Distributed Systems