Iggy.rs - Streaming de mensajes construido con Rust
(blog.iggy.rs)Origen
- En abril de 2023, decidió aprender Rust.
- Con base en su experiencia en sistemas distribuidos y mensajería, decidió desarrollar una plataforma de streaming de mensajes.
- El objetivo era entender el funcionamiento interno de los sistemas de mensajería y los trade-offs que enfrentan los desarrolladores.
- Así nació Iggy.rs, con la meta de ser una plataforma de streaming de mensajes enfocada en la velocidad y la ligereza.
Proyecto
- Al inicio, Iggy usaba el protocolo QUIC para ofrecer funciones básicas de intercambio de mensajes.
- Mediante prototipado y mejoras continuas, se implementó un servidor con soporte para escritura/lectura en paralelo y flujos independientes.
- Se agregó soporte para los protocolos TCP y HTTP, y se mejoró el rendimiento optimizando el mecanismo de sincronización de datos.
- Las pruebas de benchmarking confirmaron un alto rendimiento y baja latencia, lo que llevó a convertirlo en un proyecto de largo plazo.
Equipo
- Iggy cuenta con un equipo de unas 10 personas que contribuyen en distintas áreas.
- Participan en diversos proyectos como el servidor central, los SDK, la web UI y la CLI.
- Desarrolladores con experiencias diversas, unidos por su pasión por la programación, participan de manera voluntaria.
- La participación de colaboradores externos de todo el mundo fortaleció la confianza en el proyecto.
Funciones
- Servidor de streaming de mensajes de alto rendimiento, sostenible y basado en logs.
- Alto throughput, baja latencia y uso predecible de recursos gracias al lenguaje compilado Rust.
- Soporte para múltiples streams, topics y particiones, además de varios protocolos de transporte.
- API RESTful, SDK de cliente en varios lenguajes y trabajo directo con datos binarios.
- Funciones del servidor configurables, almacenamiento en el servidor de offsets de consumidores y soporte para diversos métodos de polling de mensajes.
- Grupos de consumidores para orden de mensajes y escalado horizontal, además de expiración de mensajes y deduplicación.
- Soporte de TLS para todos los protocolos de transporte, cifrado opcional de datos y soporte para headers de mensajes.
- CLI integrada y app de benchmarking para administrar el servidor de streaming, con despliegue en un solo binario.
Hoja de ruta
- Tras aparecer en la página de tendencias de GitHub, comenzaron las conversaciones con usuarios sobre nuevas funciones.
- El objetivo es mejorar rendimiento y confiabilidad mediante clustering, I/O de bajo nivel y una arquitectura de un hilo por núcleo.
- Se está experimentando con el mecanismo de consenso Raft, mejoras en operaciones de I/O con io_uring y el uso del runtime monoio.
Futuro
- El objetivo es crear una plataforma de streaming de mensajes de propósito general y desafiar los límites del sistema operativo y del hardware.
- Se planea ofrecer una plataforma integrada fácil de usar, con soporte para varios lenguajes de programación, CLI y web UI.
- Se busca avanzar a partir del feedback y las ideas de la comunidad.
GN⁺ opina
- Iggy.rs es una plataforma de streaming de mensajes basada en Rust, orientada a alto rendimiento y baja latencia.
- Como proyecto de código abierto, sigue creciendo de forma constante gracias a la participación y contribución voluntaria de desarrolladores de todo el mundo.
- Su ambiciosa meta de superar los límites de rendimiento en sistemas distribuidos mediante tecnologías innovadoras como clustering, optimización de I/O de bajo nivel y una arquitectura de un hilo por núcleo resulta especialmente interesante, y lo convierte en un proyecto muy valioso para quienes se interesan en este campo.
1 comentarios
Opiniones de Hacker News