PyCon Nigeria Annual Conference

The Pulse of Your Application: Creating Dynamic Real-Time Notifications in Django

speaker-foto

Adio Fuad Abiodun

I'm a seasoned software engineer specializing in web development, particularly with Django and FastAPI. I also possess foundations in machine learning and data science using Python. My versatility extends to various programming languages and frameworks, including Frappe, Flask, Node.js, and Golang. With a significant background in building accounting, human resources, and finance services, I bring a deep understanding of complex systems and a track record of delivering high-performance solutions. I'm passionate about crafting innovative, scalable, and secure software to drive business success.

Description

Quite often, we have to build systems that perform a lot of processing; make some external API call, process a file and so on. For the best user experience, it's necessary that we keep users in the loop and at the same time, allow them to explore other parts of our systems while their requests are being processed. Real-time, in-app notifications give us this freedom.

Abstract

In a world where instantaneous communication is the norm, delayed responses in applications can lead to frustration and disengagement. Quite often, we are required to develop systems that do some long-running computation before returning a response to the users. It is not enough to send these tasks to background workers; users need to be kept in the loop about what's happening to their requests and, at the same time, have the freedom to move around our application, trusting that they'll be informed when their request is ready. Real-time notifications leveraging the websocket protocol help achieve this experience.

We will use Django, DRF, channels, Celery, and Redis to achieve such a notification system.

Audience level: Intermediate or Advanced