In this chapter, we introduced the asynchronous API. First, we explained the key difference between a synchronous API and an asynchronous API. Then, we learned how multiple API requests lead to the fan-in or fan-out of services.
After that, we introduced a queuing system called RabbitMQ. A queue can hold jobs and allows servers to work on them. We learned how to create a queue and write a job into it. We also created a few RabbitMQ clients that can pick jobs from the queue and process them.
We also designed a long-running task with multiple workers and a queue. The workers always listen to the queue and accept jobs. We defined three kinds of workers: DB, Email, and Callback.
Redis is an in-memory database that stores key/value pairs. We can use it as a cache to store the status of jobs. We extended our long-running task to add status information by storing job statuses...