Criar um fluxo de trabalho com base na Durable Functions

Concluído

Pode utilizar a Durable Functions para orquestrar um fluxo de trabalho de execução prolongada como um conjunto de atividades. Pode mapear cada passo do processo num tipo de função e cada tarefa numa atividade. Ter um processo automatizado significa que não tem de se preocupar com monitorizar ou escalar manualmente, no caso de a tarefa não estar concluída.

À medida que continuamos a pensar em automatizar nosso processo de aprovação de propostas, precisamos considerar os casos em que uma etapa do processo não é concluída a tempo e precisa ser escalada. Por exemplo: o que acontece se precisarmos da aprovação de um gestor para um determinado tamanho de proposta, mas o gestor estiver atrasado com a resposta?

As etapas de escalonamento são úteis para o negócio, pois movem uma tarefa quando um prazo é atingido. Eles garantem que as tarefas sejam concluídas e não esquecidas. Uma etapa de escalonamento pode envolver o envio de lembretes ou até mesmo a reatribuição de uma tarefa a alguém mais alto na hierarquia gerencial.

Nesta unidade, irá criar um fluxo de trabalho do processo de aprovação com base na Durable Functions. No próximo exercício, vai aplicar este conhecimento para criar uma aplicação com o Azure Durable Functions.

Descrição do processo de aprovação de design

O nosso fluxo de trabalho começa quando o design de um projeto é submetido para aprovação. A proposta é atribuída como uma tarefa de aprovação a um gestor. O gestor irá aprovar ou rejeitar a proposta. No mundo real, esse evento provavelmente geraria e enviaria uma notificação ao autor da proposta para que ele soubesse o resultado da solicitação de aprovação/rejeição. Neste exemplo, irá apenas alterar o estado da tarefa para approved ou rejected.

Os passos do fluxo de trabalho são os seguintes:

  1. O design de um projeto é submetido.
  2. Uma tarefa de aprovação é alocada a um gerente para que ele possa revisar a proposta de design do projeto.
  3. A proposta de design do projeto é rejeitada ou aprovada.
  4. Uma tarefa de escalamento é atribuída se a tarefa de aprovação não for concluída dentro do limite de tempo predefinido.

A imagem a seguir é uma representação visual do fluxo de trabalho mostrando as três funções em nossa orquestração: a aprovação da solicitação, a aprovação do processo e uma função de escalada.

Representação visual do fluxo de trabalho mostrando as três funções em nossa orquestração.

A seguinte tabela mostra como os passos de fluxo de trabalho podem ser mapeados aos tipos de funções que utilizamos num fluxo de trabalho da Durable Functions.

Função de fluxo de trabalho Tipo de Função Durável
Submeter uma proposta de design de projetos para aprovação Função Client
Atribuir uma tarefa de Aprovação a um membro relevante da equipa Função Orchestration
Tarefa de aprovação Função Activity
Tarefa de escalamento Função Activity

A função Orchestration irá gerir uma regra no fluxo de trabalho que inicia a atividade de escalamento, caso a atividade de aprovação não devolva dentro de um tempo especificado.

Agora que compreendemos o que é necessário para o nosso fluxo de trabalho, vamos escrevê-lo no código na próxima unidade!