Aprenda como evitar DDoS em seus servidores ao trabalhar com Flows e Coroutines em Kotlin. Descubra os erros comuns e como corrigi-los!
No mundo da tecnologia, não basta criar algo que funcione, é preciso garantir que funcione bem mesmo quando muita gente estiver usando ao mesmo tempo.
Recentemente, vivemos uma situação que mostrou isso na prática. Nossa equipe lançou um novo recurso para enviar notificações em tempo real aos usuários. O código tinha passado por todas as revisões, funcionava perfeitamente nos testes e estávamos muito confiantes.
Mas, quando colocamos em produçao, aconteceu o inesperado: ao mesmo tempo em que milhares de pessoas reais começaram a usar o sistema, sofremos também um ataque cibernético chamado DDoS (quando hackers lotam os servidores com acessos falsos para derrubá-los).
O resultado? Em vez de só resistirmos ao ataque extrno, nós mesmos acabamos sobrecarregando nossos servidores sem perceber. Era como se tivéssemos aberto todas as torneiras de uma casa ao mesmo tempo: a água acabou rapidinho e a estrutura quase não aguentou.
O problema estava em um detalhe sutil da programação: a forma como lidávamos com conexões e interrupções. Pequenas diferenças no código faziam toda a diferença entre um sistema estável e um que consumia recursos sem parar.
O que aprendemos?
Depois de corrigirmos isso, nossos servidores conseguiram suportar o ataque sem problemas.
Moral da história: em tecnologia, “funcionar” e “funcionar de verdade” são coisas bem diferentes.