The best way to implement a scalable system that communicates with multiple external components—whether it uses an external API, sends email, or converts videos—is by using an asynchronous task queue, which mediates the interactions between all system components.