Distributed Computing and CAP theorem