PHP + Laravel = Stack perfeita?
Como tudo na computação: depende.
Adoro essa stack, é minha principal há 5 anos. Mas ela peca MUITO em desempenho.
O Laravel tem uma estrutura pesadíssima, é um framework construído em cima de outro framework. Com isso ele carrega diversas classes que deixa a execução extremamente lenta.
Em questão de desenvolvimento considero um paraíso, tudo que preciso está lá. Tenho uma produtividade absurda e sempre prefiro usar ele em projetos de pouco acesso de tamanho pequeno e médio.
Caso seu projeto tenha uma quantidade relevante de acessos ou uns serviços mais pesados ele peca MUITO.
Meu caso de uso
Desenvolvi um serviço que diariamente sincroniza o meu banco de dados com uma API. Esse serviço fica horas na sua capacidade máxima, Limitado a 3 operações por segundo.
Cada operação consistem em:
- Consultar um endpoint PHP
- Popular os dados em um modelo
- Salvar no banco de dados
Ps: Uso o próprio banco de dados como driver da fila
Em horários de pico o banco de dados informa que estão sendo feitas quase 200 Querys por segundo.
Como um serviço de executa 3 operações chega a quase 200 querys? Overhead causada pelo RateLimiter.
Outro fator limitante: Cada requisição HTTP demora 250ms de tempo de resposta em média. Quantos workers preciso para manter a velocidade máxima?
20 Workers.
Sim, preciso alocar quase 2GB de RAM distribuídos em 20 workers para sustentar uma integração de 3 Jobs/Segundo
Nenhuma stack é bala de prata
Frameworks, Linguagens e ferramentas estão aí para resolver problemas. Temos que usar cada uma na hora e finalidade certas.
Não devemos nos prender à tecnologias, devemos aprender a programar