Conceitos fundamentais
O Ato descreve um Computation(computação) pelo que ele ainda pode fazer e mantém um ponto selado desse Computation separado da forma como o ponto é produzido fisicamente de novo. Os termos abaixo são o vocabulário usado pelo restante dos guias para desenvolvedores.
Mantenha as distinções: uma continuação não é um Capsule(uma cápsula), um Capsule não é um Run(uma execução), um Record(um registro) não é o Computation que descreve e uma Materialization(uma materialização) não é a identidade de nada.
Computation
Computation é o trabalho que resta a partir de um ponto atual. Não é uma transcrição de tudo o que aconteceu antes desse ponto: as etapas concluídas não estão mais lá, e o que importa é o que ainda pode acontecer a partir daqui.
Uma interação evolui um Computation para o próximo:
C ──α──▶ C'
As interações incluem um processo gravando na saída padrão, um usuário digitando um comando ou uma requisição de rede chegando. A composição constrói um Computation maior a partir de Computations menores conectados por Port(portas).
Contract
Um Contract(contrato) é uma condição observável sobre um Computation: "o build foi concluído", "o erro do compilador foi reproduzido", "o servidor responde a GET /health com 200".
C ⊨ K
Um Contract diz o que precisa valer para que um Computation futuro conte como o mesmo tipo de ponto. É um predicado, não um artefato. Um Record pode mostrar que um Contract valeu em uma observação, mas o Record não se torna o Contract.
Capsule
Um Capsule é um ponto selado, imutável e endereçável em um Computation — uma continuação aberta e persistente que pode ser preservada, passada, retomada, composta e bifurcada.
O wire v2 com raiz Computation usa ComputationRef; Portable Application wire v3/v4 usa ContractRef. As referências não são intercambiáveis. Consulte Portable Capsules (inglês).
Run
Um Run é uma avaliação ao vivo retomada de um Capsule. O selamento é imutável; um Run avança conforme as interações ocorrem.
Capsule immutable
Run evolving
Record evidence
Dois Runs retomados do mesmo Capsule se desenvolvem separadamente sem alterar o ponto de onde partiram.
Record
Um Record é evidência durável de que uma interação foi observada. Records são como o histórico de um Run é mantido e como Replay(reprodução) reconstrói um ponto em outra máquina.
Um Record explica como um Run chegou a um ponto. Não é o ponto em si e não redefine o Capsule.
Materialization
Uma Materialization é uma forma física de realizar um Capsule lógico em um host específico. O Capsule responde "de onde devo continuar?"; a Materialization responde "como volto para lá nesta máquina?".
logical continuation != physical realization
Adicionar, substituir ou remover uma Materialization compatível não cria um novo Capsule.
Status atual:
- O wire v2 com raiz Computation pode usar Replay (
ato.replay@1) por meio dos Adapter disponíveis. Portable Application v3/v4 usa a Derivation selecionada. - Um snapshot de workspace (
ato.snapshot@1) pode ser capturado e verificado, mas ainda não restaura um ponto sozinho. - Um materializador de snapshot de VM oferece uma interface de restauração, mas exige backend adequado e host compatível; a retomada entre hosts arbitrários não é garantida.
Binding
Um Binding(uma vinculação) mapeia um requisito lógico para um recurso de runtime concreto. Uma Port que precisa de um terminal é vinculada a um PTY real; uma Port de workspace é vinculada a um diretório real no disco.
Bindings são resolvidos por execução. Eles não entram na identidade do Capsule.
Ports e Protocol
Uma Port(uma porta) é um limite tipado para interação em um Computation. Seu Protocol e papel decidem quais interações são válidas. A composição conecta Ports entre si; um runtime conecta uma Port a um endpoint físico por meio de um Binding.
Onde o modelo termina
A execução entre hosts depende de rotas e ambientes compatíveis e não é uma garantia universal. Consulte Portable Capsules (inglês).