RabbitMQ - Flask e Sendgrid
E-mail de boas vindas e ativação da conta do usuário
Arquitetura
O monolito é muito bom para
E o monolito pode....
virar um grande quebra cabeça
![](https://blogs.sap.com/wp-content/uploads/2015/02/comparison_652872.jpg)
Estórias
1. Como usuário devo me registrar no aplicativo para ter acesso as principais noticias do mercado de ações
2. Como plataforma devo cadastrar o usuário na base de dados e enviar um e-mail de boas vidas com um botão para ativar a conta do usuário
3. Como plataforma devo receber a URL de ativação, verificar o usuário e ativar a conta para que ele, o usuário, acesse a plataforma
![](https://s3.amazonaws.com/media-p.slid.es/uploads/35756/images/5581650/rabbitmq-procedural-sendgrid.png)
Possíveis problemas com o código anterior
- A requisição pode demorar para ser processada devido o custo de rede.
- O serviço do terceiro pode estar fora do ar.
- A requisição está com dados errados e o serviço de terceiro retorna um erro.
Efeitos colaterais em caso de erro
Efeito colateral
Para o usuário
Não irá receber o e-mail como consequência não irá utilizar o aplicativo pois não está ativado. Em linguagem de CRM perde-se um LEAD.
Efeito colateral
Para a equipe de densenvolvimeto
Verificar o serviço de e-mail, fazer um envio de teste, reprocessar o pedido, ir para o código diagnosticar o problema. Constatado um BUG na plataforma é necessário abrir uma nova tarefa, corrigi-la, o que demanda mais tempo de desenvolvimento
Efeito colateral
Para a empresa
Gastos envolvidos tanto na alocação de um profissional para corrigir o problema quanto a perda de um valioso usuário que vai deixar de usar a plataforma
Proposta
Quebrar o monolito
- Disponibilidade
- Segurança de dados
- Funcionalidades mais enxutas
e desacopladas
RabbitMQ
Fluxo
![](https://www.cloudamqp.com/img/blog/exchanges-bidings-routing-keys.png)
Fonte: https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html
RabbitMQ
Tipos de Exchanges
![](https://www.cloudamqp.com/img/blog/exchanges-topic-fanout-direct.png)
Fonte: https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html
![](https://s3.amazonaws.com/media-p.slid.es/uploads/35756/images/5581369/rabbitmq-flask-sendgrid.png)
CloudAmqp
Produtor. Lets code
Sendgrid. 12K emails free
Worker em NodeJS
Ativando a conta
Conclusão
![](https://blogs.sap.com/wp-content/uploads/2015/02/comparison_652872.jpg)
Obrigado
- Github: https://github.com/lucassimon/flask-api-users
- Website: https://lucassimon.com.br
RabbitMQ, Flask e Sendgrid
By Lucas Simon Rodrigues Magalhaes
RabbitMQ, Flask e Sendgrid
Github: https://github.com/lucassimon/flask-api-user, website: http://lucassimon.com.br
- 1,933