O que vocês acham sobre Microfrontends?
Recentemente comecei a estudar a respeito da arquitetura de microfrontends, mas tenho algumas dúvidas em relação à viabilidade e aplicações. Qual a opinião de vocês em relação a este tema?
Recentemente comecei a estudar a respeito da arquitetura de microfrontends, mas tenho algumas dúvidas em relação à viabilidade e aplicações. Qual a opinião de vocês em relação a este tema?
Trabalho com microfrontends a mais de um ano e para mim foi uma experiência ruim. Para ficar mais simples de entender minha opnião vou explicar separando pontos positivos e negativos, segundo a minha experiência:
Pontos Positivos
Pontos Negativos
Conclusão
Para mim, MFEs só servem se você está tendo problemas com monolitos muito grandes, por conta de aplicações imensas (pensa no Mercado Livre, por exemplo) e se tem um time de front grande também.
O que os MFEs resolvem são questões mais relacionadas a gestão de pessoas e times do que questões técnicas relacionadas a código e a aplicação.
Pode parecer uma solução incrível no começo, mas garanto que dá muita dor de cabeça, especialmente se for implementado de forma descuidada e não acho seja uma boa ideia começar um projeto usando microfrontends, porque é muita complexidade sem necessidade.
Talvez pro meu propósito funcione. Por exemplo, imagine que eu tenho uma plataforma que lida com diversas funcionalidades, desde listagem simples até meios de pagamento (talvez até conexão com carteiras de criptomoedas). Nesse caso, seria interessante a aplicação desse conceito?
Além disso, tem indicações à respeito de conteúdos, livros, artigos e afins que possam me ajudar no desenvolvimento de maneira ?
Não posso dizer com 100% de certeza por não conhecer como é sua aplicação, nem quantas pessoas trabalham nela, mas eu decidiria da seguinte forma:
Usar microfrontend se:
Alternativa que eu estudaria:
Sobre conteúdos: dá uma pesquisada sobre o Module Federation do Webpack.
Achei estes links muito úteis também:
Eu atualmente estou trabalhando em um projeto de migração de arquiteturas de monolitos para arquitetura de microfrontends e como tudo na área da programação, tem seus pontos positivos e negativos. No meu caso utilizo o angular com single-spa.
Creio que o maior ponto positivo desse tipo de arquitetura aparece quando você tem múltiplas equipes que precisam trabalhar paralelamente em algo que para o usuário seria o mesmo produto.
Não vejo problema em você criar um app como prova de conceito para tentar entender como funciona esse tipo de arquitetura, mas tenha em mente que ela resolve problemas específicos e cria “problemas” diferentes, vi em um dos seus comentários que quer utilizar SSR, você não vai fazer da mesma forma que faz em uma aplicação normal, terá que adaptar para o tipo de arquitetura. Dependendo de qual estratégia utilizar, module federation, single-spa ou outro tipo, pode complicar mais ainda seu trabalho.
Como exemplo, aqui tem uma issue do single-spa em que eles conversam sobre o suporte ao nextjs: https://github.com/single-spa/single-spa.js.org/issues/306
Trabalhei em um projeto que utilizamos essa estratégia, e posso ressaltar alguns pontos.
Microfrontends (na minha opinião) fazem sentindo em grandes projetos, e que os módulos possam ser separados para diferentes squads trabalharem.
Isso cria uma autonomia muito bacana, tanto na separação do código, qualidade, deploy e etc.
É recomendado também ter um design System compartilhado, para que os módulos não sejam uma bagunça de layouts kkkk.