Distributed systems are built out of services that need to communicate, and the simplest way to do that is for one service to call another directly and wait for a response.