Closed pedrofgd closed 1 year ago
O diagrama foi feito com Mermaid Para editar o diagrama é só editar o conteúdo da descrição da issue
Talvez o passo um não faça a parte desse sequência de requisição, já que o broker já deve estar configurado antes de receber requisições.
Concordo. O diagrama #7 foi criado depois desse e deve conter os detalhes da inicialização. Também acho que o passo 1 pode ser removido
Adicionei os steps de utilização do requisitor, o código do dessa modificação tá nesse PR #13
Atualizar ponto 25 para não mais "Invalidar provedor". Como a ideia agora é obter a lista ordenada dos provedores a cada requisição, o provedor não precisa ser invalidado, porque o registro dos resultados da validação (ponto 20) já é o suficiente para o Ranqueador ter a informação mais atualizada sobre o estado dos provedores quando uma outra requisição chegar para o mesmo recurso. O ponto 25 agora parte para enviar a requisição ao próximo provedor.
%%{init: {'theme':'neutral'}}%%
sequenceDiagram
participant Cliente
box Broker para API REST
participant Broker
participant Ranqueador
participant Monitoramento
participant Mapeador
participant Requisitor
participant Validador
participant Configurações
participant Provedor
end
autonumber
Cliente->>Broker: Enviar request para o provedor
Broker->>Configurações: Identificar recurso que o cliente quer acessar
Configurações->>Broker: Configurações do recurso
loop Enquanto os critérios não forem atingidos
Broker->>Ranqueador: Obter provedor ativo para o recurso
Ranqueador->>Monitoramento: Obter lista ordenada dos provedores para o recurso com base nos critérios configurados
Monitoramento->>Ranqueador: Lista de provedores para o recurso
Ranqueador->>Broker: Primeiro provedor da lista
Broker->>Mapeador: Mapear objeto da requisição para o provedor
Mapeador->>Configurações: Obter configurações da requisição do provedor ativo
Configurações->>Mapeador: Configurações do provedor
Mapeador->>Broker: Requisição mapeada para o provedor
Broker->>Requisitor: Envia a requisição
Requisitor->>Provedor: Envia a requisição
Provedor->>Requisitor: Resposta
Requisitor->>Broker: Resposta
Broker->>Validador: Verificar se a resposta do provedor atende os critérios
Validador->>Configurações: Obter critérios do recurso solicitado
Configurações->>Validador: Critérios
Validador->>Broker: Resultado da validação
Broker->>Monitoramento: Registra os resultados da validação
alt Provedor atendeu aos critérios
Broker->>Mapeador: Mapear objeto de resposta
Mapeador->>Configurações: Obter configurações da resposta do recurso solicitado
Mapeador->>Broker: Resposta mapeada para o cliente
Broker->>Cliente: Resposta
else Provedor não atendeu aos critérios
Broker->>Broker: Tenta próximo provedor da lista
end
opt Nenhum dos provedores atingiu aos critérios
Broker->>Cliente: Erro
end
end
Tentativa de compactar o diagrama:
%%{init: {'theme':'neutral'}}%%
sequenceDiagram
actor Cliente
box Broker para API REST
participant Broker
participant Configurações
participant Ranqueador
participant Monitoramento
participant Mapeador
participant Requisitor
participant Validador
participant Provedor
end
autonumber
Cliente->>Broker: Enviar request para o provedor
Broker->>Configurações: Identificar recurso que o cliente quer acessar
Configurações->>Broker: Configurações do recurso
loop Enquanto os critérios não forem atingidos
Broker->>Ranqueador: Obter provedor ativo para o recurso
Ranqueador->>Monitoramento: Obter lista ordenada dos provedores para<br> o recurso com base nos critérios configurados
Monitoramento->>Ranqueador: Lista de provedores para o recurso
Ranqueador->>Broker: Primeiro provedor da lista
Broker->>Mapeador: Mapear objeto da requisição para o provedor
Mapeador->>Configurações: Obter configurações da requisição do provedor ativo
Configurações->>Mapeador: Configurações do provedor
Mapeador->>Broker: Requisição mapeada para o provedor
Broker->>Requisitor: Envia a requisição
Requisitor->>Provedor: Envia a requisição
Provedor->>Requisitor: Resposta
Requisitor->>Broker: Resposta
Broker->>Validador: Verificar se a resposta do provedor atende os critérios
Validador->>Configurações: Obter critérios do recurso solicitado
Configurações->>Validador: Critérios
Validador->>Broker: Resultado da validação
Broker->>Monitoramento: Registra os resultados da validação
alt Provedor atendeu aos critérios
Broker->>Mapeador: Mapear objeto de resposta
Mapeador->>Configurações: Obter configurações da resposta do recurso solicitado
Mapeador->>Broker: Resposta mapeada para o cliente
Broker->>Cliente: Resposta
else Provedor não atendeu aos critérios
Broker->>Broker: Tenta próximo provedor da lista
end
opt Nenhum dos provedores atingiu aos critérios
Broker->>Cliente: Erro
end
end
Como já apresentamos essa versão para a professora ontem, vou fechar essa issue. As alterações necessárias serão feitas e discutidas em outras
Versão inicial (aprimorar após discussão):