Iggy.rs - Construindo streaming de mensagens com Rust
(blog.iggy.rs)Origem
- Em abril de 2023, foi tomada a decisão de aprender Rust.
- Com base na experiência em sistemas distribuídos e mensageria, decidiu-se desenvolver uma plataforma de streaming de mensagens.
- O objetivo era entender o funcionamento interno dos sistemas de mensageria e os trade-offs enfrentados pelos desenvolvedores.
- Assim nasceu o Iggy.rs, com a meta de ser uma plataforma de streaming de mensagens focada em velocidade e leveza.
Projeto
- O Iggy inicial usava o protocolo QUIC para oferecer funcionalidades básicas de troca de mensagens.
- Por meio de prototipagem contínua e melhorias, foi implementado um servidor com suporte a escrita/leitura paralela e streams independentes.
- Foram adicionados suporte aos protocolos TCP e HTTP, além de melhorias de desempenho com a otimização do mecanismo de sincronização de dados.
- Benchmarks confirmaram alta taxa de transferência e baixa latência, levando à transformação em um projeto de longo prazo.
Equipe
- O Iggy conta com uma equipe de cerca de 10 membros contribuindo em diferentes frentes.
- Há participação em vários projetos, como o servidor principal, SDK, Web UI e CLI.
- Desenvolvedores com experiências diversas participam voluntariamente, unidos pela paixão por programação.
- A participação de contribuidores externos de várias partes do mundo aumentou a confiança no projeto.
Funcionalidades
- Servidor de streaming de mensagens de alto desempenho, sustentável e baseado em log.
- Alta taxa de transferência, baixa latência e uso previsível de recursos graças ao Rust como linguagem compilada.
- Suporte a múltiplos streams, tópicos e partições, além de vários protocolos de transporte.
- API RESTful, SDKs de cliente para várias linguagens e trabalho direto com dados binários.
- Funcionalidades do servidor configuráveis, armazenamento de offsets de consumidores no servidor e suporte a vários métodos de polling de mensagens.
- Grupos de consumidores para ordenação de mensagens e escalabilidade horizontal, além de expiração e deduplicação de mensagens.
- Suporte a TLS em todos os protocolos de transporte, criptografia opcional de dados e suporte a cabeçalhos de mensagens.
- CLI integrada e aplicativo de benchmarking para gerenciamento do servidor de streaming, com distribuição em binário único.
Roadmap
- Após aparecer na página de tendências do GitHub, começaram as discussões com os usuários sobre adição de funcionalidades.
- O objetivo é melhorar desempenho e confiabilidade por meio de clustering, I/O de baixo nível e arquitetura de thread por núcleo.
- Há experimentos com o mecanismo de consenso Raft, melhorias nas operações de I/O com io_uring e planos de usar o runtime monoio.
Futuro
- O objetivo é criar uma plataforma de streaming de mensagens de propósito geral e desafiar os limites do sistema operacional e do hardware.
- Há planos de oferecer uma plataforma unificada e fácil de usar, com suporte a várias linguagens de programação, CLI e Web UI.
- O projeto pretende evoluir com base no feedback e nas ideias da comunidade.
GN⁺ Opinião
- O Iggy.rs é uma plataforma de streaming de mensagens baseada em Rust, com foco em alto desempenho e baixa latência.
- Como projeto open source, continua crescendo com a participação voluntária e as contribuições de desenvolvedores do mundo todo.
- Sua meta ambiciosa de superar os limites de desempenho de sistemas distribuídos por meio de tecnologias inovadoras como clustering, otimização de I/O de baixo nível e arquitetura de thread por núcleo é interessante e faz dele um projeto muito valioso para quem se interessa por essa área.
1 comentários
Comentários no Hacker News