SOS-RS / backend

Auxílio RS: Projetos de Resposta a Emergências por Chuvas e Alagamentos
https://sos-rs.com
MIT License
712 stars 306 forks source link

Migração do Protocolo HTTP/1 para HTTP/2 no Fastify #113

Closed lopeski closed 3 months ago

lopeski commented 3 months ago

Olá pessoal, espero que estejam bem e seguros.

Durante a revisão do código, observei que a utilização o Fastify com o protocolo HTTP/1. Dada a natureza da aplicação, que pode ser utilizada em locais com alta concentração de usuários e infraestrutura possivelmente danificada, acredito que migrar para o HTTP/2 traria benefícios significativos.

Justificativa Técnica: Os benefícios do HTTP/2 são numerosos e poderiam melhorar significativamente o desempenho da aplicação. Primeiramente, a multiplexação de conexões permite que múltiplas requisições sejam enviadas em uma única conexão TCP, o que reduz a latência e melhora a eficiência do uso da rede. Além disso, o HTTP/2 utiliza compressão de cabeçalhos HPACK, reduzindo o overhead das requisições HTTP, especialmente em conexões com muitos cabeçalhos repetitivos. Outra vantagem é a priorização de requisições, que permite otimizar o carregamento de recursos críticos. Por fim, o recurso de push de servidor possibilita que o servidor envie recursos proativamente ao cliente, diminuindo o tempo de carregamento de páginas.

Risco e Mitigação: A implementação dessa mudança antes de realizar qualquer alteração no código principal é crucial para evitar a interrupção do workflow de outras pessoas. A transição para HTTP/2, se feita sem o devido planejamento, pode introduzir inconsistências temporárias ou até falhas em ambientes onde o protocolo não é totalmente suportado.

Estou à disposição para liderar e implementar essa alteração. Acredito que essa melhoria poderá trazer um desempenho mais robusto e eficiente para a aplicação, beneficiando todos os usuários.

Aguardo o feedback de vocês para podermos avançar com esta proposta.

Obrigado!

mateusvieites commented 3 months ago

A ideia é realmente boa, mas lembrando tem que dar uma olhada que o http/2 ainda é experimental, ou seja, ainda é para ser realizado em ambientes de testes segundo a própria wiki do fastify e conversando com o pessoal no discord deles https://fastify.dev/docs/v3.29.x/Reference/HTTP2/

gabriel-vinicios commented 3 months ago

o suporte pro protocolo já tem previsão de lançamento?