Distributed Systems final notes