Será demonstrado um padrão para desenvolvimento de aplicações web em tempo real, utilizando signals do Django, com Channels, ASGI, REST Framework e Celery.
Desde que a ASGI foi implementada no Django, em 2019, que é possível dispor de toda a agilidade, escalabilidade e consistência desse framework para desenvolver aplicações em tempo real, utilizando websockets, sem inserir latência na propagação das atualizações do banco de dados para o navegador. Nesta palestra, será demonstrado um padrão para isso, usando como exemplo uma sala de chat.
Ao final, será lançado uma nova camada para o Django que torna o processo mais rápido, simples e elegante. O código é resultado de 20 meses de desenvolvimento e maturação em produção e será publicado na Python Brasil.
Tópicos:
- Apresentação do palestrante e porquê agora, com ASGI, Django é **O Framework**
- Apresentação do backend de uma aplicação de chat completa, síncrona, sem websockets, utilizando REST Framework. Este é o contexto de um projeto existente, em que será implementada atualização em tempo real por websockets.
- Explicação do asyncio e a programação assíncrona, explicando o que está por trás, sem aprofundar, com foco na prática.
- Apresentação do Django Channels
- Implementação de um signal que envia atualizações do modelo direto pelo websocket.
- Aprofundamento sobre asyncio, demonstrando como a latência é reduzida sem aumentar o consumo de recursos. Explicação sobre o broker (Redis / RabbitMQ)
- Integração com Celery para tarefas em background
- Apresentação de um novo módulo Django que torna todo esse processo muito mais simples, rápido e elegante.
Link: https://www.youtube.com/watch?v=GZm9w77WUkY