Distributed computing, according to wikipedia:
distributed system is a system whose components are located on different networked computers, which communicate and coordinate their actions by passing messages to one another from any system. The components interact with one another in order to achieve a common goal. Three significant challenges of distributed systems are: maintaining concurrency of components, overcoming the lack of a global clock, and managing the independent failure of components
I have little to say about this right now, but interesting things pass me sometimes
Distributed data structures are tedious. See this post on CDRTs.