Scalability Distributed Computing Systems ACID Layered applications and other architectural styles P2P Processes and threads Virtualization Client-server architecture: servers Code migration, resources RPC Sockets; message-oriented middleware Streams Epidemic algorithms Home-based naming DHT DNS Name resolution algorithms Physical clock synchronization Logical clocks, vector clocks Mutual exclusion algorithms Coordinator election algorithms Consistency Fault tolerance Reliable multicasting (over local network)