Three layers of communication abstraction: low-level IPC primitives, request-reply / RPC / RMI, and indirect (decoupled) communication such as pub/sub, message queues, and tuple spaces.
Key facts
Direct: tightly couples sender and receiver in identity and time.