Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

O diagrama descreve bem a arquitetura pedida no desafio?

Olá! Gostaria de saber se o modelo de arquitetura descreve bem o sistema detalhado no desafio. Fiquei com dúvida na parte que diz que os eventos vão ser processados de "forma independente por diferentes assinantes". Estou supondo que isso significa que vai existir mais de um serviço assinante disponível para processar os eventos disparados, então inclui um componente para fazer o balanceamento do uso desses assinantes. Está correto?

Não entendi a parte "como esses eventos interagem entre si". Qual seria um exemplo de interação entre os eventos?

Entendo que para atingir o objetivo de ter uma "maneira eficiente e desacoplada" de entregar as notificações teria que adicionar o evento a uma fila, por meio de messageria. Existe alguma outra forma?

Modelo de arquitetura: sistema de notificações

1 resposta
solução!

Olá Marianna! Tudo bem?

Com o que você me descreveu posso dizer que você está no caminho certo, mas, vou esclarecer algumas questões e suas dúvidas.

Processamento Independente por Diferentes Assinantes: A ideia é que cada evento possa ser consumido por múltiplos assinantes, que são serviços responsáveis por processar as notificações. O uso de um balanceador de carga para distribuir as mensagens entre os assinantes é uma boa prática, pois ajuda a gerenciar a carga e garantir que os eventos sejam processados de forma eficiente.

Interação entre Eventos: Quando falamos de interação entre eventos, estamos nos referindo a como um evento pode influenciar ou gerar outros eventos. Por exemplo, um evento de "nova mensagem" pode gerar notificações de diferentes tipos, como um alerta para o usuário e uma atualização de status. Essa interação pode ser modelada através de regras de negócio ou fluxos de trabalho que definem como os eventos se relacionam.

Entrega Eficiente e Desacoplada: Além do uso de filas de mensagens, outras abordagens para garantir a entrega eficiente e desacoplada incluem o uso de sistemas de publicação/assinatura (pub/sub) ou até mesmo arquiteturas baseadas em microserviços, onde cada serviço é responsável por uma parte específica do processamento.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.