Ansioso pelo liberação do link do repositório, live maravilhosa, ver na prática uma implementação de monolito modular foi muito instrutivo, estou iniciando um MVP e escolhi o NestJS como framework, e já estava pensando em usar monolito modular com hexagonal, e consegui tirar muitas dúvidas pela live!
Fala Renato, o desenvolvimento vai começar logo e vou começar a compartilhar os primeiros videos na comunidade Tech Leads club. comece.techleads.club, no RUclips vai levar mais um tempo.
ótimo conteúdo! estou nesse momento estruturando meu primeiro projeto em nest, migrando de um projeto adonis, e ainda não tenho mta certeza de onde deixar as o quê. essa live me esclareceu alguns pontos. vcs vão colocar o link pra estrutura base desse projeto? grande abraço. obrigado.
Uma dúvida. No caso de separar os processos para rodarem independentes. Seria uma má pratica, deixar algo como as entidades ou domínio em um contexto comum para serem compartilhadas pelos módulos? No caso de enviar um dado de um modulo para outro, onde quem recebe teria que ter a Tipagem, Entidade, Validações do outro modulo. Caso contrario, teria meio que duplicar código.
eu faço isso com o rest padrao publicando um modulo separado no npm com os dtos , aí todos os projetos mobile, desktop que consomem os tipos instalam o pacote
Creio que não seria o ideal. A primeira vista parece ser ideal pq é tudo igual e tá reusando código, porém cada módulo é separado por dominio de negócio e cada dominio de negócio tem seu contexto e suas necessidades de mudanças. As vezes, em um dominio vc só quer uma parte da entidade. Ex: Imagina uma aplicação de restaurante, a entidade Pedido pode ser representada diferente quando está no dominio Financeiro comparado ao dominio da Cozinha. O DTO e uma entidade do modulo de Cozinha vai ter muito mais detalhes que a entidade de pedido do modulo financeiro. Nesses casos, com o crescimento da aplicação, é melhor deixar cada um em seu contexto separado. Eu costumo pensar em como uma entidade vai crescer de acordo com o seu objetivo de negócio. Se você colocar tudo junto, daqui a pouco estará tudo bagunçado com vários campos que estarão sempre como null. Isso se adequa também ao princípio do Open Closed do SOLID.
@@LucasSoaresAraujo Entendo.. essa é uma dúvida.. acho que é uma faca de dois gumes, pois se poder usar o Pick ou Omit pra reaproveitar a tipagem. dessa forma, se algo mudar, vai ser facil identificar em todos os lugares que é utilizado essa tipagagem.
Eu tentei replicar o projeto... fiz um projeto onde eu crio 2 modulos pro bull (1 que adiciona na fila e outro que consome)... esse que consome eu chamo separado e funciona... digo os dois ao mesmo tempo em portas diferentes, porem nesse que consome eu adicionei o modulo de Logger e ele parou de funcionar, mas o primeiro continua normal... ele nao "encontra" o modulo logger adicionado no modulo do bull que consome, lembrando que este que consome ta em um bootstrap() diferente
@@JoaoVitor-zb3gp Pelo que entendi não é que por ser modular que será monolito distribuído, mas os módulos podem ser - como foi exemplificado. O monolito seria distribuído caso queira escalar - rodar instâncias em máquinas diferentes etc.
Link para o repositório utilizado github.com/victoraliss0n/modular-monolith-example
Curti, ficou super claro a ideia. Essa visão de intercomunicação ficou show! Foda!
Ansioso pelo liberação do link do repositório, live maravilhosa, ver na prática uma implementação de monolito modular foi muito instrutivo, estou iniciando um MVP e escolhi o NestJS como framework, e já estava pensando em usar monolito modular com hexagonal, e consegui tirar muitas dúvidas pela live!
github.com/victoraliss0n/modular-monolith-example
Excelente! Muito bom conteúdo desse tipo, conteúdo true, mostrando exemplos da vida real.
Ansioso pelo link do repositório e pelo canal do victor
💻 Link para o repositório utilizado github.com/victoraliss0n/modular-monolith-example
Graças a deus fui atrás de aprender nestjs, pois peguei um freela,aí aprendi pra poder fazer a api, deu tudo certo,entreguei
É bom demais!
Waldemar, qual a previsão do lançamento do curso: Desenvolvendo aplicações Node.js Enterprise?
Fala Renato, o desenvolvimento vai começar logo e vou começar a compartilhar os primeiros videos na comunidade Tech Leads club. comece.techleads.club, no RUclips vai levar mais um tempo.
ótimo conteúdo! estou nesse momento estruturando meu primeiro projeto em nest, migrando de um projeto adonis, e ainda não tenho mta certeza de onde deixar as o quê. essa live me esclareceu alguns pontos.
vcs vão colocar o link pra estrutura base desse projeto?
grande abraço. obrigado.
Boaa! O Victor vai disponibilizar o link da estrutura logo
Link para o repositório utilizado github.com/victoraliss0n/modular-monolith-example
Eu fiquei na duvida do Build para o module credit-main e de como fazer o Dockerfile deste build tmb, na verdade o deploy/pipeline
Conteúdo diferenciado! O Vitor tem canal no RUclips também?
Acabou de criar www.youtube.com/@TrilhaSenior/about
@@WaldemarNetoDevLab Valeu, irmão!
Uma dúvida. No caso de separar os processos para rodarem independentes. Seria uma má pratica, deixar algo como as entidades ou domínio em um contexto comum para serem compartilhadas pelos módulos?
No caso de enviar um dado de um modulo para outro, onde quem recebe teria que ter a Tipagem, Entidade, Validações do outro modulo. Caso contrario, teria meio que duplicar código.
eu faço isso com o rest padrao publicando um modulo separado no npm com os dtos , aí todos os projetos mobile, desktop que consomem os tipos instalam o pacote
Creio que não seria o ideal. A primeira vista parece ser ideal pq é tudo igual e tá reusando código, porém cada módulo é separado por dominio de negócio e cada dominio de negócio tem seu contexto e suas necessidades de mudanças.
As vezes, em um dominio vc só quer uma parte da entidade. Ex: Imagina uma aplicação de restaurante, a entidade Pedido pode ser representada diferente quando está no dominio Financeiro comparado ao dominio da Cozinha. O DTO e uma entidade do modulo de Cozinha vai ter muito mais detalhes que a entidade de pedido do modulo financeiro. Nesses casos, com o crescimento da aplicação, é melhor deixar cada um em seu contexto separado.
Eu costumo pensar em como uma entidade vai crescer de acordo com o seu objetivo de negócio. Se você colocar tudo junto, daqui a pouco estará tudo bagunçado com vários campos que estarão sempre como null. Isso se adequa também ao princípio do Open Closed do SOLID.
@@LucasSoaresAraujo Entendo.. essa é uma dúvida.. acho que é uma faca de dois gumes, pois se poder usar o Pick ou Omit pra reaproveitar a tipagem.
dessa forma, se algo mudar, vai ser facil identificar em todos os lugares que é utilizado essa tipagagem.
Eu tentei replicar o projeto... fiz um projeto onde eu crio 2 modulos pro bull (1 que adiciona na fila e outro que consome)... esse que consome eu chamo separado e funciona... digo os dois ao mesmo tempo em portas diferentes, porem nesse que consome eu adicionei o modulo de Logger e ele parou de funcionar, mas o primeiro continua normal... ele nao "encontra" o modulo logger adicionado no modulo do bull que consome, lembrando que este que consome ta em um bootstrap() diferente
percebi q qdo adicionei usando ctrl+. do VSCODE ele adicionou do jeito dele, depois eu fui adicionando na mao (../../..) ai parece q resolveu
como fica o deploy . unico , separado ?
O deploy pode ser tanto unico quanto separado, normalmente se começa junto e vai colocando separado as partes que precisam de mais escala.
Monólito modular seria monólitos distribuídos?
Oi João, não sei se entendi a pergunta, porque seriam monolitos distribuidos?
É essa minha dúvida rsrs, se são a mesma coisa ou não
@@JoaoVitor-zb3gp Pelo que entendi não é que por ser modular que será monolito distribuído, mas os módulos podem ser - como foi exemplificado.
O monolito seria distribuído caso queira escalar - rodar instâncias em máquinas diferentes etc.
No caso de dependência de métodos ou tipos já definidos em outros módulos pode fazer a importação direta?