Как уже сказали, для чатов самое оптимальное websocket, только тут всплывет что у Django с этим проблема, есть channels, но мне они очень не нравятся, выглядит как переделанный сбоку костыль. Кроме этого, год назад видел попытки реализации websocket на основе текущего async в Django, но за этим не следил, так что не знаю какое там сейчас состояние. Так что лучшее решение, перенести чат на async фреймворки