Por qué escribimos nuestro protocolo de red en Rust (Orzatty Protocol)

En los inicios de OrzattyCloud, la comunicación en tiempo real de nuestra infraestructura dependía fuertemente de WebSockets (WS) iterando sobre JSON. Era el estándar industrial. Para una startup tradicional, montar Socket.io o SignalR es suficiente. Pero cuando tu objetivo es enclavar infraestructura soberana capaz de gestionar telemetría de Edge Computing desde Caracas hasta nuestros nodos distribuidos con latencias sub-10ms, el modelo tradicional se desmorona rápidamente.

El problema del Head-Of-line Blocking en TCP

WebSockets opera sobre TCP. En una red inestable, como suele ocurrir en ciertas rutas de fibra dentro del continente sudamericano, la pérdida de un solo paquete TCP causa que todos los paquetes subsecuentes se detengan a la espera de una retransmisión. Esto es el doloroso Head-of-Line (HoL) blocking.

Decidimos saltar TCP y construir el Orzatty Protocol directamente sobre QUIC (UDP). QUIC nos permite crear streams multiplexados. Si un paquete de un stream se pierde, los demás streams siguen fluyendo independientemente. Esto significó una reducción de la latencia observada de "tail" (el p99) de 450ms a simplemente 15ms en conexiones inestables.

Zero-Copy Serialization con Rkyv

El segundo cuello de botella no era la red, sino la CPU. Deserializar gigantescas ráfagas de JSON hacia objetos en memoria representaba el 40% de nuestro consumo en los Worker Nodes.

// Antes: JSON Parse let data: SystemMetrics = serde_json::from_slice(&buffer)?; // Ahora: Zero-Copy let archived: &ArchivedSystemMetrics = unsafe { rkyv::archived_root::(&buffer) };

Implementamos rkyv en Rust. En lugar de deserializar, rkyv valida la memoria en el buffer udp crudo y devuelve un puntero que nos permite leer los datos directamente sin alojar nada nuevo en memoria (Zero-Copy). Esta es una técnica que utilizan los sistemas financieros HFT, y que ahora forma el backbone del Orzatty Protocol.

Conclusiones Soberanas

Escribir un protocolo sobre UDP en Rust fue un desafío de ingeniería gigantesco. Tuvimos que implementar nuestra propia capa de control de congestión usando BBR y la librería quinn. Pero el resultado es claro: autonomía tecnológica total. Nuestro protocolo no depende de frameworks inflados del Silicon Valley; está diseñado para correr en microprocesadores y en servidores Edge en el sur de Venezuela a la máxima capacidad matemática posible.