Em um mundo que tende para os micro serviços, em que a comunicação entre nossas aplicações ao menos aparentemente se fixou no protocolo HTTP, quão relevante é o container Java EE hoje?
No momento em que um projeto é iniciado, a questão a respeito de qual container Java EE está sendo levada em consideração? É feita uma análise que lhe permita ver as vantagens e desvantagens de soluções como Wildfly, Glassfish (cuja última notícia no site oficial é de 2017… https://javaee.github.io/glassfish/), Tomcat, Jetty ou outros?
Ou será que chegamos a um ponto no qual realmente tanto faz qual container de aplicação usar, visto que só precisamos realmente do procolo HTTP para a comunicação entre nossos componentes?
Quando pego soluções como o próprio Spring Boot ou Micronaut, que embarcam no primeiro caso o Tomcat, e no segundo o Netty, tornando o container/servidor algo quase totalmente invisível, me pego levantando estas questões. Especialmente quando pesquisas ano após ano mostram que a esmagadora maioria dos desenvolvedores opta pelo Tomcat em seus projetos sem sequer questionar ao certo (vide esta pesquisa de 2015, https://plumbr.io/blog/java/most-popular-java-ee-containers-2015-edition, esta de 2017, https://plumbr.io/blog/java/most-popular-java-application-servers-2017-edition, esta de 2018 https://www.baeldung.com/java-in-2018, e continue buscando, vai ver o mesmo comportamento).
Fonte: https://www.baeldung.com/java-in-2018
Tomcat se tornou o padrão ao que tudo indica, mas seria ele realmente a melhor solução? O que vocês, desenvolvedores Java, pensam a respeito deste tema?
Indo um pouco além, o próprio Java EE, estaria em cheque com esta forte adoção do Tomcat, que não tem todos os recursos da plataforma (eu sei do Tom EE - https://tomee.apache.org) sendo posto em cheque aqui?
PS: eu sei que o Tomcat não é um servidor de aplicações completo em si