multiplierx / desafio-integracao

Desafio para candidatos á Equipe de Integração!
7 stars 4 forks source link

[Dúvida] Estrutura do Projeto #1

Closed dominickbrasileiro closed 3 years ago

dominickbrasileiro commented 3 years ago

Olá,

Finalizei o desenvolvimento da API principal em NestJS e estou com algumas dúvidas a respeito da estrutura do projeto e do serviço que faz a integração entre os bancos MySQL e PostgreSQL.

  1. Como deve ficar a estrutura de pastas dos dois serviços? Eles devem ficar em "projetos" separados ou serem incluídos dentro da API principal?

  2. Caso eles devam ficar em "projetos" separados, é necessário utilizar o NestJS no serviço cron? Se sim, posso utilizar o Task Scheduling do próprio NestJS ou devo utilizar o pacote npm node-schedule?

  3. Como deve ficar a estrutura de entidades/modelos utilizando dois bancos de dados diferentes? Caso os serviços fiquem separados, ainda devo utilizar o sequelize-typescript para fazer as inserções?

Aguardo resposta, obrigado!

saade commented 3 years ago

Boa noite Dominick, tudo bem?

Que ótimo! Estamos ansiosos para ver o resultado do seu trabalho!

Pode ser feito em projetos separados se desejar, porém utilizamos o recurso de Monorepo do Nest aqui na Multiplier!

Utilizando monorepo seu projeto pode abrigar mais de um serviço na mesma codebase. Segue link das docs: https://docs.nestjs.com/cli/monorepo.

Em questão da TaskScheduling, pode usar o NestJS sim! Inclusive, também utilizamos ela para agendamento dos jobs.

Sobre a estrutura das models:

O padrão do Nest é utilizar uma pasta chamada "entities" na root src do seu projeto.

Dentro dessa pasta, você pode criar duas subpastas "postgresql" e "mysql" e abrigar as models (repetindo-as) dentro de cada uma. Tens alguma sugestão para não repetirmos elas, e usar a mesma model para ambos PostgreSQL e MySQL? Adoraria ouvir uma sugestão!

Caso precise de algo mais, fique á vontade para comentar abaixo!

dominickbrasileiro commented 3 years ago

Bom dia, Guilherme!

Muito bacana o recurso de Monorepo do Nest, não conhecia até então. Me pergunto se também não daria para utilizá-lo para gerar uma library contendo as entidades que ficariam repetidas, e "repetir" apenas a conexão com os bancos dentro de cada aplicação.

Enfim, hoje vou continuar o desenvolvimento e qualquer coisa volto a comentar aqui.

Muito obrigado pelas respostas e pela atenção!

saade commented 3 years ago

Bom dia Dominick!

Correto! Podemos usar uma lib para evitar repetir os models. Ótima sugestão! 😉

dominickbrasileiro commented 3 years ago

Desafio finalizado!

Enviei o link do repositório para o endereço de email talentos@multiplier.com.br.

Vou fechar a issue por aqui. Obrigado pelo suporte! 🙂