Asynchronous refers to communication systems that don't speak to each other in real-time, or in other words, synchronously. One side does not wait for the other side to respond in synchronized time, and vice-versa. Since asynchronous messaging systems do not communicate in a steady stream, rather relying on events, they are a good fit for nuanced communication scenarios. Internet of Things (IoT) systems, for example, may warrant an asynchronous communication style if devices have an intermittent Internet connection. Asynchronous systems are also helpful for large file uploads, or functions on the client or server-side that require a long period for processing. In the case of web APIs, some are designed asynchronously with special properties catered to these situations.