Apache Iggy Architecture Rewrite: Implementing WebSocket Protocol with io_uring and Completion-Based I/O
By
spetz
The bagel they save for the regulars. Don't skim, savour.
Summary
Apache Iggy is undergoing a major architectural rewrite from version 0.5.0, transitioning to a thread-per-core, shared-nothing design using io_uring's completion-based I/O model. The project has migrated from Tokio to compio runtime to better leverage io_uring capabilities, which presents integration challenges with the Rust ecosystem. The rewrite focuses on building WebSocket protocol support while aiming to improve performance, reduce tail latencies, and lower resource usage.
Key quotes
· 3 pulledThis architectural redesign aims to further improve performance, reduce tail latencies and lower resource usage by leveraging io_uring's completion based I/O model.
As part of this rewrite, we migrated from Tokio to compio, a completion-based async runtime that allows us to better utilize io_uring capabilities.
However, it also presents different challenges when integrating with the wider Rust ecosystem.
You might also wanna read
Restartable Sequences: A Linux Kernel Feature for Lock-Free Thread-Safe Programming
This article explores restartable sequences (rseq), a Linux kernel feature introduced in version 4.18 (circa 2018) that enables creation of
Optimizing .NET APIs for High Throughput: Techniques for 1M Requests Per Minute
Article discusses techniques for designing high-throughput .NET APIs capable of handling 1M requests per minute. It covers horizontal scalin
SQLite as a Viable Alternative for Durable Workflow Execution
The article argues that SQLite can replace complex orchestration systems for durable workflow execution in many cases. It builds on DBOS's a
JWT vs Opaque Tokens: A Technical Comparison for API Security Architecture
This article compares JWT (JSON Web Tokens) and opaque tokens for API security, clarifying the common confusion between bearer tokens and JW
Zig Days: Collaborative Full-Day Programming Events for the Zig Community
Zig Days are full-day collaborative programming events organized by the Zig community, typically held on Saturdays. Participants meet in the
How Frontend State Management Becomes a Distributed Monolith as Apps Scale
This article discusses how frontend state management in growing applications can evolve into a "distributed monolith" — where state becomes
