Skip to content

Instantly share code, notes, and snippets.

@suissa
Created June 11, 2026 14:15
Show Gist options
  • Select an option

  • Save suissa/f2276693450dd62bd9d7d238eb18cdcf to your computer and use it in GitHub Desktop.

Select an option

Save suissa/f2276693450dd62bd9d7d238eb18cdcf to your computer and use it in GitHub Desktop.
Conversa com o Claude Fable sobre minha ideia de UbiQ Channel

Claude falando o óbvio

Mas claro, para aceitar ele recebe um magic link que entra numa página que pede a passkey, esse é meu 2FA passwordless, eu não tenho form de cadastro, só 1 input pedindo telefone e o botão Entrar, q manda o magic link pro WhatsApp para abrir uma página com um botão do tamanho da janela escrito Confirmar, só existe a ação de entrar pois é a mesma para cadastrar, o user apenas escrevendo seu telefone já se cadastra no sistema com autenticação de 2 fatores passwordless, depois só peço seu username, qualquer outro dado pessoal só será requisitado se a ação do User precisa de sistemas externos, exemplo: só peço endereço quando ela for receber algo e já deixo preenchido para qualquer compra dela e se ela precisar só mudar o CEP é o número da casa, se um dia precisar de CPF também armazeno, porém todos dados pessoais é mensagens do usuário são criptografados com sua chave privada que só existe no seu navegador e se formos usar ou entregar para ele uma informação via chat ele precisa autenticar com sua passkey que será utilizada para descriptografar sua chave para ser usada apenas pelo Gateway para montar a resposta e se for algum tipo de análise os dados são achados pelos seus metadados, descriptografados para a análise, gerando um resultado já criptografado e os dados sendo destruídos logo após o final da criptografia. Nenhum dado referente ao usuário tráfega sem criptografia, isso que meus agentes usam mTLS+DPoP no sistema de mensageria e entre cada um também é um mTLS diferente, com criptografia Kyber com chaves LinearAutodestroy (foi um tipo que criei baseado no tipo Linear, mas no meu eu garanto de diferentes formas a autodestruição após ser lido, criei isso para os módulos de jwt, DPoP e Kyber para mais de 20 linguagens diferentes e para o ts tem mais de 40 módulos que usam esse meu Semantic QuarkBehavior Type, ele não um tipo normal, ele não topa o valor, ele topa o Behavior em cima de qualquer valor, até implementei isso nos eventos do meu UbiQ que é um NATS ZeroTrust com DLQ e Outbox e no meu QUIC MQ, minha arquitetura é LinearAutodestroy por padrão, não armazeno valores na RAM armazeno o EventSourcing de cada Agent em um QuarkBehaviorEventsQueueStore pois eu só tenho funções de criptografia e de eventos, as funções são chamadas por eventos e retornam seu resultado por evento, só internamente que sempre chama a função validate do Semantic Type do se resultado e a função proccess que executa sua lógica, todos ouvem o evento start e error e emitem os eventos de success e error, sim ele emite o evento de erro para entrar no pipeline de self-healing que vai emitindo o error até chegar na última função ou emite o success se o resultado daquela etapa conseguiu passar no SemanticType.forge -> QuarkBehavior.proccess -> SemanticType.forge

A função de Forge chama a validate no início, se passar ela coloca o valor puro como esse SemanticType e a função proccess precisa receber com o SemanticType correto para poder implementar a lógica específica mas em cima do valor primitivo para depois forjar aquele valor no SemanticType correto, quando resulta no success dessa função forge o QuarkBehavior emite seu success sem precisar validar nada e o Agent que é um Atomicbehavior não possui nenhuma lógica, recebe apenas um graflow com a sequência de QuarkBehaviors e suas configurações e também seu json-schema que é colocado na RAM zeroizado, ao emitir qualquer evento o meu runtime zeroiza sua RAM, mas mantendo sua estrutura de dados, se ele precisa do payload pro error esse valor vai junto do payload do evento de error, pois ele não mantém estado na RAM, mas sim no meu QuarkBEQStore que armazena o último estado atual + 10 últimos eventos para que o Agent seja statefull e possa reiniciar extremamente da última função processada. É tudo isso sendo replicado em tempo real via QUIC + eBPF com Zig para entregar os pacotes da placa de rede para o socket do processo do Agent, com isso eu replico os 10 dbs diferentes que uso e faço sharding nas minhas libs de mensageria, meu UbiQ usa: TCP, quic, grpc, websocket acho q até http, tudo ZeroTrust. Eu consigo replicar e escalar qualquer banco de dados em tempo real e concorrente, o agent clone fica ouvindo os mesmos eventos, se o agente oficial demorar ou cair o clone pega no mesmo momento possuindo exatamente o mesmo estado do oficial, e faço throttle de 1 min por api-key verificando o num ebpf_hash_map se o hash identificador possui um timestamp menor que 60s ele faz o drop pois sabe q não veio do nosso sistema, isso para UI, eu acho que vou fazer uma forma de distribuir deterministicamente os pacotes baseados na entity_id garantindo que nunca a instância de uma entidade seja processada pelos 2 agentes assim eu mantenho a consistência dos Estados de cada um, pois eu crio 1 eventstore local por entity_id, assim eu acesso seu estado atual em O(1) + O(1) + O(10)? Acessa o arquivo com o último estado calculado + acessa o arquivo binário, usado para leituras e escrita veloz e que só pode ter 10 nós no máximo + 10 que processa até 10 últimos eventos isso né. Eu tenho a representação dos eventos em graflow também que é o valor Canônico para leitura humana e backup, para fazer um rollback transforma ele no binário do tamanho que precisar e vai aplicando os estados no sentido reverso, o rollback usa o último estado consolidado para criar a sequência futura e depois reverter ela garantindo a consistência, pois não teria como começar do nada do último evento

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment