Django, asyncio e websockets
10-21, 10:20–11:05 (America/Manaus), Jaraqui - Vasco Vasquez

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

Asa

A Terra era criancinha ainda quando Asa começou a codar. Está voltando à Python Brasil depois de tanto tempo, que as edições de que participou nem aparecem mais no checkbox. Autor da lib OO, Sheet!