1 puntos por GN⁺ 2025-02-02 | 1 comentarios | Compartir por WhatsApp
  • Introducción

    • Hydro es un framework de programación distribuida de alto nivel para Rust.
    • Hydro ayuda a escribir rápidamente servicios distribuidos escalables y garantiza la seguridad distribuida, así como Rust garantiza la seguridad de memoria.
    • Permite ejecutar programas distribuidos fácilmente tanto en modo de prueba como en modo de despliegue.
  • Características de Hydro

    • Hydro es un lenguaje de flujo de datos distribuido impulsado por un runtime DFIR monohilo de alto rendimiento.
    • A diferencia de las arquitecturas tradicionales como actores o RPC, ofrece una API coreográfica que permite describir cómputo a través de múltiples ubicaciones.
    • Está integrado con Hydro Deploy, por lo que se pueden desplegar y ejecutar fácilmente programas distribuidos de Hydro en local o en la nube.
  • Compilación y despliegue

    • Hydro utiliza un enfoque de compilación de dos etapas.
    • Un programa de Hydro es un programa estándar de Rust que genera un plan de despliegue en la laptop del desarrollador.
    • Este plan se compila a DFIR para generar binarios individuales para cada máquina del sistema distribuido.
    • Se despliega en la nube usando el plan generado y las especificaciones de recursos en la nube.
  • Casos de uso

    • Hydro se utiliza para implementar sistemas distribuidos de alto rendimiento como commit en dos fases y Paxos.
    • Se está desarrollando una biblioteca estándar de sistemas distribuidos que ofrece estos protocolos como componentes reutilizables.
  • Precauciones

    • La documentación de Hydro todavía está en proceso, y si hay preguntas o errores, se recomienda abrir un issue en el repositorio de GitHub de Hydro.

1 comentarios

 
GN⁺ 2025-02-02
Opiniones en Hacker News
  • Hay una buena charla en YouTube sobre el proyecto Hydro
    • Está centrada en DFIR
  • Creo que ayudaría tener casos de uso reales para entenderlo
  • Me pregunto si, al tener un lenguaje intermedio y un runtime propio, se pierden las ventajas de Rust
    • Esperaba un lenguaje que coordinara binarios de Rust en un sistema distribuido consistente y funcional, pero parece que se escribe DFIR
  • Este proyecto me parece realmente interesante
    • Me pregunto si alguien familiarizado con esta área puede mencionar casos anteriores
    • Me pregunto si hay gente que haya construido frameworks similares en otros lenguajes
    • Hay personas que han trabajado en flujo de datos, y me pareció que Materialize era muy genial
    • He usado Kafka Streams y pensé que hacía falta un framework que integrara todo esto
  • El esfuerzo está bien, pero ojalá llegue akka.rs al ecosistema de Rust
  • Me pregunto cómo se compara con Timely desde la perspectiva de flujo de datos
    • Me pregunto si en el IR se puede expresar flujo de control como bucles
  • Me pregunto si cada "proceso" se despliega como un binario separado y se ejecuta como un proceso aparte
    • Si es así, parece que habría un problema de mayor sobrecarga
    • Me pregunto cómo logran una comunicación rápida
    • Me pregunto si hay algún mecanismo rápido de IPC con memoria compartida
    • Parece que no se menciona la integración con async
    • La mayor parte del código que maneja redes se ha pasado a async
    • Es difícil encontrar buenas librerías async para muchas cosas que requieren networking
  • Se ve realmente genial, y en especial la parte de despliegue parece única
    • Ojalá haya documentación más detallada
    • En particular, me dan curiosidad las partes importantes de Streams, Singletons y Optionals
  • Me gusta el modelo de programación
    • Me pregunto si hace optimizaciones de red al reescribir la aplicación
    • Me pregunto cómo maneja los cuellos de botella y la congestión de red
  • Me pregunto cómo se compara con usar Ballista para pipelines de datos
    • Este último está construido sobre Apache Arrow y Apache Datafusion, así que obtiene muchas ventajas de eso