In a distributed system, communication between elements is inherently asynchronous. There is no global clock nor consistent clock rate. Each computer processes independently of others. Some computers in the system have fast clock cycles while others have slower clock cycles. Even if time was precisely the same on every element in the distributed system, each element would still process the communication at different rates, thus making the commutation asynchronous.
Operating systems have had asynchronous communication for decades. Requests are queued and eventually results return. Asynchronous communications were necessary to manage peripheral devices with a vast spectrum of clock rates. Distributed applications face similar problems. In a traditional computer language the underlying implicit architecture is a call-frame stack. In contrast, the underlying architecture mechanism for asynchronous communication is a queue. There is limited support architectures based on asynchronous communication built from queues in traditional computer languages.
Communications are the dominant aspect of distributed systems. A large part of the architecture description defines the interfaces and communications of the disparate components of the distributed system.