TheCodeNaked

Paralelismo - Episódio 16 (Copy)

Episódio 16 - Eventos externos: a ponte entre o mundo real e a execução

Até aqui, construímos uma engine capaz de executar tarefas sequenciais, condicionais, iterativas e dinâmicas. Mas todo sistema real não vive isolado. Em algum momento, algo externo precisa interagir com nossa lógica:

  • Um clique do usuário
  • Um alarme
  • A resposta de uma requisição REST
  • A leitura de um sensor
  • A chegada de um arquivo

Neste episódio, vamos introduzir eventos externos na linguagem JSON interpretada, permitindo que a engine aguarde por algo externo para continuar. O fluxo agora pode "parar" e esperar algo de fora.

Sintaxe do evento externo

{
  "acao": "AguardarEvento",
  "nome": "botao.continuar",
  "proxima": "etapa2"
}

Modo de funcionamento

  1. Quando a engine encontra AguardarEvento, ela pausa a execução.
  2. Registra internamente que está aguardando o evento botao.continuar.
  3. Algum código externo (por exemplo, um clique no Delphi) envia esse evento.
  4. A engine é notificada e retoma a execução na etapa definida por proxima.

API de interação externa (pseudo Delphi)

Engine.RegisterEvent('botao.continuar');

Ou, se a aplicação está escutando um endpoint REST:

Engine.RegisterEventFromREST('sensor.temperatura.ok');

Exemplo completo com evento externo

[
  { "acao": "ExibirMensagem", "texto": "Aguardando clique do usuário..." },
  { "acao": "AguardarEvento", "nome": "botao.continuar", "proxima": "final" },
  { "id": "final", "acao": "ExibirMensagem", "texto": "Continuando após clique!" }
]

Com isso, nossa linguagem agora pode reagir ao mundo.


Por que isso importa?

A maioria dos fluxos reais não são lineares. Eles aguardam algo:

  • Um pagamento
  • Uma permissão
  • Um recurso
  • Uma confirmação

Esse modelo de pausa por evento é leve, seguro e desacoplado. Não usa SleepWaitFor ou polling.

Nos próximos episódios, vamos evoluir:

  • Timeout de eventos
  • Eventos concorrentes (aguardar mais de um)
  • Reatividade total com notificadores

Estamos criando uma engine que pensa e espera. Como você.

Threads executam. Usuários interagem. Sistemas reagem.

A próxima fronteira é a integração perfeita entre eles.

Sobre o autor

TheCodeNaked

No TheCodeNaked, programar é consequência, não ponto de partida. Antes do código, vem a dúvida, a análise, o contexto. Não seguimos fórmulas — questionamos. Criar software é pensar com clareza. O resto é só digitação.

TheCodeNaked

Criar com clareza. Codificar com intenção.

TheCodeNaked

Ótimo! Você se inscreveu com sucesso.

Bem-vindo de volta! Você acessou com sucesso.

Você se inscreveu com sucesso o TheCodeNaked.

Sucesso! Verifique seu e-mail para acessar com o link mágico.

As suas informações de faturamento foram atualizadas.

Seu pagamento não foi atualizado