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
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
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
Fonte: https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html
RabbitMQ
Tipos de Exchanges
Fonte: https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html
CloudAmqp
Produtor. Lets code
Sendgrid. 12K emails free
Worker em NodeJS
Ativando a conta
Conclusão
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,856