Desculpe, mas pra que você usaria um Observer para gravar os dados ? Qual a vantagem ?
dev iniciante. alguma neura com algo como. o meu repositorio de companies so pode inserir dados na tabela companies. faz sentido isso ?
pelo pouco que eu estudei desse design Pattern por enquanto ele me parece fazer sentido em situações estilo ' efeito dominó ' eu cadastrei uma company eu preciso apos isso inserir dados acessorias como endereços, telefones e emails.
Entendi sua lógica.
Não é esse o caso.
O objetivo do observer não é cascatear (efeito em cascata/dominó) eventos mas permitir a objetos "interessados" em alguma ocorrencia ficarem cientes quando algo acontecer. Isso ajuda a isolar as responsabilidades e desacoplar os objetos.
No seu caso a solução é a transação. Caso contrário você corre o risco de ter inconsistências na sua base de dados.
auditar uma acao de um usuário é uma exemplo de caso de uso do observer?(no meu caso efetivamente um registro na tabela de auditorias) ou tbm deve ser feito enquanto a requisição http estiver aberta ? outro exemplo. cadastrei um cliente e quero enviar um whats/email de boas vindas. esse faz sentido ne ?
Olá.
Desculpe a demora na resposta.
Sim, pode ser usado o observer, mas isso também pode ser resolvido apenas com a emissão de eventos de dominio pelos seus objetos. É uma solução mais simples, desacopla os objetos envolvidos e ainda mantém a semantica do domínio.
Imagino que seu cadastro de cliente aconteça dentro de um objeto de serviço. Esse objeto pode emitir eventos como CadastroEfetuado, CadastroCancelado, CadastroRemovido, CadastroAtualizado dependendo da ação executada. O payload desse evento pode ser o cliente e a data/hora que o evento ocorreu.