Posso discordar? Especialmente de uma frase?
às vezes, não precisamos quebrar tudo em microserviços (sic)
Mesmo se eu inverter isso, ainda estarei falando uma mentira:
às vezes, precisamos quebrar tudo em microsserviços
Vamos falar a verdade:
quase nunca precisamos quebrar tudo em microsserviços
Às vezes, precisamos ter alguns microsserviços separados do monólito, mas fazer o sistema inteiro pensado assim, é muito difícil achar motivação técnica, até mesmo as grandes plataformas, inclusive algumas das maiores não usam a técnica e funcionam melhor do que as que adotam. Instagram, Shopfy, Wikipedia, Stack Overflow, etc. Esquece "ser escalável" isso é uma bobagem que até os mais ferrenhos proponentes já não estabelecem como diferencial.
Existem basicamente dois motivos principais que as pessoas adotam essa arquitetura:
a) Lei de Conway, fazer o sistema se encaixar com a estrutura já descentralizada da empresa que funciona como pequenas empresas em vez de algo mais centralizado. Isso tem vantagens e desvantagens, alguns fazem melhor que outros, e na hora de transpor isso para o software pode funcionar bem ou não.
b) a pessoa é deslumbrada e quer estar na moda sem saber 10% do que precisa sobre microsserviços, talvez ela só queira colocar no currículo que fez isso em um trabalho.
Eu sempre peço para as pessoas provarem o contrário quando discordam, ninguém o fez até hoje, elas só garantem que o caso delas é necessário. Só devemos adotar algo, especialmente complexo, quando podemos provar que será melhor. Nunca vi alguém publicando algo mostrando uma prova que o caso delas era necessário.
E eu observo alguns dos softwares mais famosos que adoraram essa arquitetura, quanto mais o tempo passa, mais lentos eles ficam para dar manutenção cometem mais erros, tem mais inconsistências e provavelmente vai ficando mais caro.
Falando do Tabnews, eu não sei se ele é tão simples assim. Eu sou mais radical em simplicidade. E não gosto de soluções lock-in, mas ok, ele não me causa maiores problemas, o maior problema que causava, arrumaram e era extremamente simples, mas ficou anos sem ninguém fazer. Tem outros problemas, mas já acostumei. Eu hoje entendo qual era o objetivo dele melhor que antes, então nem reclamo mais.
"Melhor" é algo altamente subjetivo sem parâmetro algum e nunca serve para balizar nada. Mas se eu criar a minha definição simplista e olhando só uma faceta, melhor é o simples, sempre. Grande parte do que se ensina hoje, geralmente falando que é melhor, que é boa prática, é o complicado.
Eu tenho diversas postagens e vou reunir tudo de forma mais estruturada fundamentando porque está "todo mundo" fazendo software errado, e o maior problema é justamente usar coisas que a pessoa nunca vai precisar ou se precisar não é tão difícil assim mudar. O YAGNI é conhecido da maioria dos programadores que passaram razoavelmente do Hello World, mas quase ninguém o segue. Porque tem o contrário bombardeando a cabeça das pessoas. E esse é outro caso das pessoas não saberem porque estão fazendo aquilo e não conseguem provar a necessidade, mas brigam que tem que fazer assim e ponto.
S2
Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui no perfil também).