Primeiros passos com Temporal

##Core APIs

####Workflows

Workflows são funções assíncronas que tem acesso especial a API de Workflows e também podem orquestrar Activities.

Cada Workflow é composto de duas partes principais:

  • O nome da função que representa o Workflow é chamado de Workflow Type.
  • O corpo da função que representa o Workflow é chamada de Workflow Definition.

O mais importante aqui são as limitações. Como Workflows são os orquestradores, eles desempenham uma tarefa chave no Temporal. Por causa disso, o SDK do Temporal não pode permitir que coisas não determinísticas aconteçam durante a execução de Workflows.

Ou seja, você não tem acesso a variáveis globais do Node, como process. Também não tem acesso a módulos nativos, como fs, crypto, etc. Em Workflows você também não pode lidar com acesso em rede, então sem net, http e relacionados.

Workflows devem somente usar as suas próprias APIs. Eles servem única e exclusivamente para orquestração.

####Activities

Activities são a forma (na verdade, a única forma) de interação com o mundo externo. Precisa ler alguma coisa no banco de dados? Leia em uma Activity. Precisa enviar um e-mail? Envie em uma Activity.

Activities podem ser executadas repetidas vezes, de forma automática, caso explodam durante a execução. Digamos que você precisa fazer uma chamada em um sistema externo e o sistema está indisponível no momento. Nesse caso, emita uma exceção na Activity que ela será tentada novamente no futuro.