problem statement
API calls to third-party providers can degrade the overall performance of a web application due to delayed responses or unsuccessful requests
a solution could be to pass the tasks onto a queuing system, freeing the web server up to keep on responding to new requests
a possible way to implement this is via celery and django
polling
image gotten from here

websockets
image gotten from here

websocket implementation on django is handled by django channels