Nos últimos anos, a arquitertura serverless ganhou muitos adeptos entre desenvolvedores e empresas. A promessa de escalabilidade automática e redução de custos atraiu uma multidão de entusiastas. Mas será que esse modelo é realmente o Santo Graal para todas as aplicações? Recentemente, o caso da Unkey trouxe à tona uma discussão importante sobre as limitações da arquitetura serverless, revelando que nem tudo que brilha é ouro.

Desvendando a transição da Unkey

A Unkey, uma plataforma de desenvolvimento, decidiu repensar sua abordagem e abandonou os Cloudflare Workers em favor de servidores Go stateful. O motivo? Latência. Quando o tempo de resposta é crítico, cada milissegundo conta. Segundo o co-fundador da Unkey, Andreas Thomas, a latência do cache estava comprometendo a performance e não era suficiente para atender à demanda de suas aplicações, que precisam responder em menos de 10 milissegundos.

O probrema central estava no sistéma de cache, que levava mais de 30 milissegundos no 99º percentil. Isso pode parecer um detalhe, mas em um ambiente onde milissegundos importam, esse atraso era inaceitável. E o que a Unkey fez? Simples. Eles voltaram a um modelo de arquitetura que permite manter dados em memória, eliminando a necessidade de múltiplas requisições de rede.

Desafios do modelo serverless

O serverless é, por definição, stateless. Isso significa que, a cada requisição, a função é iniciada, processa e desaparece, levando com ela quaisquer dados que não estejam armazenados em outro lugar. Para a Unkey, isso se tornou um pesadelo. Eles tiveram que implementar soluções complexas, como um proxy chamado chproxy, apenas para lidar com eventos de análise de forma eficiente. O que deveria ser uma solução simplificada se tornou um quebra-cabeça de integrações e serviços que só aumentava a complexidade do sistema.

Além disso, a equipe da Unkey se viu gastando mais tempo avaliando e integrando novos serviços do que realmente construindo novas funcionalidades. Uma situação frustrante, sem dúvida. E isso é um alerta para muitas empresas: será que a arquitetura serverless é realmente a melhor opção para o seu caso? Às vezes, a simplicidade de um sistema stateful pode ser mais vantajosa do que a promessa de escalabilidade do serverless.

Dicas para uma arquitetura mais eficiente

Se você está pensando em adotar ou já está utilizando uma arquitetura serverless, aqui vão algumas dicas que podem te ajudar:

Reflexões Finais

A história da Unkey é um lembrete de que a arquitetura serverless, apesar de suas vantagens, pode não ser a melhor escolha para todos os cenários, especialmente aqueles que exigem performance e latência controlada. O importante é entender que a tecnologia deve servir às necessidades do negócio, e não o contrário. Portanto, sempre que estiver em dúvida, não hesite em reavaliar suas escolhas e considerar o que realmente faz sentido para sua aplicação.

Se você é um desenvolvedor ou arquiteto de software, a lição aqui é clara: escute as necessidades do seu sistema e esteja disposto a adaptar-se. O mundo da tecnologia é dinâmico, e o que funciona hoje pode não ser a melhor opção amanhã.