Dúvida em DDD

Bom pessoal, estou começando a desenvolver um sistema de controle de patrimônio e resolvi usar DDD nele.
Porém é minha primeira experiencia com DDD e tenho algumas dúvidas.
Espero que possam me ajudar.
Dúvidas:
1 - Em uma tela de cadastro de produtos, preciso listar certos tipos de produtos, que pertencem a uma outra tabela. Na minha camada de aplicação, como devo recuperar esse dados afim de retorná-los para camada de apresentação? Instacio o repositorio da minha camada de apresentacao e retorno os dados? Crio um Service Gerenciador de Tipos de Produtos e dentro dele tenho um método que via repositorio recupero a lista de tipos de produto?
2 - Quando vou efetuar esse cadastro de produto, ele envolve mais entidades como por exemplo, Tipo, Marca, Empresa e etc. Todos essas Entidade compões minha Entidade Produto. No momento do cadastro, o produto por ter essas Entidade dentro dela, ela mesma é passada ao repositório pra ser salva ou crio um Service que efetua essa transação?

Bom espero que me ajudem, preciso de respostas pois meu chefe ta apertando eu…rs…
Obrigado galera.

PS: Instacio o repositorio da minha camada de aplicação e retorno os dados?

Básicamente sim. Opcionalmente poderia usar um Servico de Pesquisas que internamente usas os vários repositorios mas isso é um detalhe que vc pode acrescentar depois se sentir necessidade.