Skip to content
This repository has been archived by the owner on Oct 19, 2024. It is now read-only.

Decisão de SAGA Health&Med

Ana Paula Lopes edited this page Jul 26, 2024 · 3 revisions

Data: 2024-07-26
Status: Aceita

Contexto

A Health&Med, uma startup inovadora no setor de saúde, está desenvolvendo um novo sistema que irá revolucionar a Telemedicina no país. Atualmente, a startup oferece a possibilidade de agendamento de consultas e realização de consultas online (Telemedicina) por meio de sistemas terceiros como Google Agenda e Google Meetings. Recentemente, a empresa recebeu um aporte e decidiu investir no desenvolvimento de um sistema proprietário, visando proporcionar um serviço de maior qualidade, segurança dos dados dos pacientes e redução de custos. O objetivo é criar um sistema robusto, escalável e seguro que permita o gerenciamento eficiente desses agendamentos e consultas. Além de conter as funcionalidades de agendamento e realização de consultas online, o sistema terá o diferencial de uma nova funcionalidade: o Prontuário Eletrônico. O Prontuário Eletrônico permitirá o armazenamento e compartilhamento de documentos, exames, cartão de vacinas, e outros registros médicos entre as partes envolvidas, garantindo maior assertividade nos diagnósticos.

Decisão

Escolher a implementação para a transação de geração de links de teleconsulta no Google.

Opções Consideradas

  1. Saga Coreografada com Filas
  2. Saga Orquestrada com um Orquestrador Central
  3. Transações Distribuídas Tradicionais

Saga Coreografada com Filas foi escolhida por uma combinação de fatores que se alinham com as necessidades e objetivos do projeto:

  1. Desacoplamento: A saga coreografada permite que serviços se comuniquem de maneira assíncrona usando eventos e filas, reduzindo o acoplamento entre eles. Isso é essencial para um sistema modular e escalável, como o que a Health&Med está desenvolvendo.
  2. Escalabilidade: Utilizar filas permite escalar cada serviço independentemente, o que é crítico para o sistema suportar um grande número de agendamentos e consultas simultâneas sem gargalos.
  3. Resiliência: A abordagem coreografada aumenta a resiliência do sistema, pois cada serviço pode continuar a operar mesmo se outros serviços estiverem temporariamente indisponíveis, desde que as mensagens nas filas possam ser processadas posteriormente.
  4. Simplicidade de Implementação e Manutenção: Implementar uma saga coreografada com filas pode ser mais simples e menos propenso a erros comparado a uma abordagem orquestrada, onde um orquestrador central precisa gerenciar a lógica de compensação e a coordenação entre serviços.
  5. Desempenho: A comunicação assíncrona via filas pode melhorar o desempenho do sistema, evitando bloqueios e permitindo que os serviços respondam rapidamente às solicitações iniciais, enquanto processam operações de longa duração em segundo plano.

Consequências

  • Maior modularidade e flexibilidade no desenvolvimento e manutenção do sistema.
  • Melhor capacidade de escalabilidade e resiliência.
  • Processamento eficiente de operações assíncronas de longa duração.

Ações a Serem Tomadas

  • Desenvolver e testar mecanismos de compensação para operações falhas.
  • Configurar monitoração e alertas para filas e eventos para garantir a visibilidade e a saúde do sistema.