Ir para o conteúdo

Estrutura como código

Hyper Reality Semantic as Code

Hoje, o Orvienm opera sobre estrutura definida de forma declarativa e executa mudanças de forma determinística. Declare a estrutura que um sistema deve ter, veja exatamente o que vai mudar antes que mude, aplique e então confira a realidade contra a declaração.

  1. Define
  2. Validate
  3. Plan
  4. Apply
  5. Verify

Representação

A mesma estrutura. Duas representações. Um sistema.

Uma hierarquia de diretórios e uma especificação declarativa descrevem a mesma coisa. O Orvienm trata a especificação como o contrato e o sistema de arquivos como o estado que esse contrato governa — assim a estrutura deixa de ser algo que você reconstrói lendo uma árvore.

Estrutura em disco

  • platform/
  • core/
  • data/
  • docs/

structure.yaml

version: 1

structure:
  name: platform
  directories:
    - core
    - data
    - docs
Como a especificação funciona

Ciclo de execução

Toda mudança passa por cinco etapas.

Nada chega ao sistema de arquivos antes de ser declarado, verificado e exibido. A mesma especificação sobre o mesmo estado produz o mesmo plano.

  1. 01

    Define

    Declare a estrutura que o sistema deve ter.

  2. 02

    Validate

    Confira a especificação antes que qualquer coisa seja executada.

  3. 03

    Plan

    Mostre as mudanças estruturais que um apply faria.

  4. 04

    Apply

    Execute o plano, criando o que está faltando.

  5. 05

    Verify

    Compare o workspace com a estrutura esperada.

Por dentro do Engine

Governança

A mudança é governada, não presumida.

Aplicar uma estrutura uma vez é fácil. Manter um sistema honesto quanto à estrutura que deveria ter é o problema difícil, e é onde o Orvienm faz a maior parte do trabalho.

Verify
Compara o workspace com a estrutura que a especificação declara e aponta onde os dois divergem.
Desvio
O que a verificação encontra quando a realidade se afastou da declaração. A detecção é relatada; não é corrigida silenciosamente.
Reparo conservador
Cria o que está faltando e preserva o que não lhe pertence. Caminhos ausentes da especificação permanecem no lugar e nunca são removidos automaticamente.
Proveniência
Identidade determinística para estrutura e conteúdo, de modo que um resultado possa ser rastreado até a especificação e o estado que o produziram.
Como a governança funciona

Linguagem

Uma especificação, não um script.

Você descreve a estrutura que um sistema deve ter, não os passos para construí-la. O aninhamento expressa contenção, e a especificação é lida como um grafo — nós e as relações entre eles — o que é justamente o que torna possível validar, planejar e verificar sobre ela.

A mesma definição pode ser validada antes de qualquer execução, comparada com um workspace e analisada como um todo, em vez de arquivo por arquivo.

O modelo declarativo

Comece por uma especificação.

O Orvienm está em Alpha. A CLI é instalada a partir do código-fonte por quem tem acesso a ele — ainda não há entrada em índice de pacotes nem release binário.