1 pontos por GN⁺ 2025-02-02 | 1 comentários | Compartilhar no WhatsApp
  • Introdução

    • Hydro é um framework de programação distribuída de alto nível para Rust.
    • Hydro ajuda a escrever rapidamente serviços distribuídos escaláveis e garante segurança distribuída, assim como Rust garante segurança de memória.
    • Ele oferece suporte para executar programas distribuídos com facilidade tanto no modo de teste quanto no modo de implantação.
  • Características do Hydro

    • Hydro é uma linguagem de fluxo de dados distribuído executada sobre o runtime DFIR monothread de alto desempenho.
    • Diferentemente de arquiteturas tradicionais como atores ou RPC, ele fornece uma API coreográfica que permite descrever computações distribuídas por vários locais.
    • Integrado ao Hydro Deploy, ele permite implantar e executar facilmente programas distribuídos em Hydro localmente ou na nuvem.
  • Compilação e implantação

    • Hydro usa uma abordagem de compilação em duas etapas.
    • Um programa Hydro é um programa Rust padrão que gera um plano de implantação no notebook do desenvolvedor.
    • Esse plano é compilado para DFIR, gerando binários individuais para cada máquina do sistema distribuído.
    • O sistema é implantado na nuvem usando o plano gerado e as especificações dos recursos de nuvem.
  • Casos de uso

    • Hydro é usado para implementar sistemas distribuídos de alto desempenho, como commit em duas fases e Paxos.
    • Está em desenvolvimento uma biblioteca padrão de sistemas distribuídos que oferece esses protocolos como componentes reutilizáveis.
  • Observações

    • A documentação do Hydro ainda está em desenvolvimento, e recomenda-se abrir uma issue no repositório GitHub do Hydro em caso de dúvidas ou bugs.

1 comentários

 
GN⁺ 2025-02-02
Comentários do Hacker News
  • Há uma boa palestra no YouTube sobre o projeto Hydro
    • O foco é em DFIR
  • Acho que ajudaria a entender melhor se houvesse casos reais de aplicação
  • Fico me perguntando se, ao ter uma linguagem intermediária e um runtime próprio, não se perde as vantagens do Rust
    • Eu esperava uma linguagem que orquestrasse binários Rust em um sistema distribuído consistente e funcional, mas parece mais que se está escrevendo DFIR
  • Este projeto é realmente muito interessante
    • Queria saber se alguém familiarizado com essa área pode citar casos anteriores
    • Queria saber se houve pessoas que construíram frameworks semelhantes em outras linguagens
    • Há pessoas que trabalharam com fluxo de dados, e achei o Materialize muito legal
    • Tenho experiência com Kafka Streams e achei que seria necessário um framework que integrasse isso
  • O esforço é legal, mas queria que um "akka.rs" chegasse ao ecossistema Rust
  • Fico curioso sobre como isso se compara ao Timely do ponto de vista de fluxo de dados
    • Queria saber se é possível expressar fluxo de controle como loops na IR
  • Fico curioso se cada "processo" é implantado como um binário separado e executado como um processo independente
    • Se for assim, parece que haveria um problema de aumento de overhead
    • Queria saber como acontece a comunicação rápida
    • Queria saber se há algum mecanismo rápido de IPC com memória compartilhada
    • Parece não haver menção à integração com async
    • A maior parte do código que lida com rede migrou para async
    • É difícil encontrar boas bibliotecas async para muitas coisas que precisam de rede
  • Parece muito legal, e especialmente a parte de implantação parece única
    • Espero uma documentação mais detalhada
    • Tenho curiosidade especialmente sobre as partes importantes de Streams, Singletons e Optionals
  • Gosto do modelo de programação
    • Queria saber se ele faz otimizações de rede ao reescrever a aplicação
    • Queria saber como lida com gargalos e congestionamento de rede
  • Fico curioso sobre como isso se compara ao uso do Ballista em pipelines de dados
    • Este último é construído sobre Apache Arrow e Apache Datafusion, o que traz muitas vantagens