El error más caro que puede cometer una plataforma de gráficos es abrir un WebSocket por cada pestaña del navegador. Esos números no admiten discusión: con 10,000 traders conectados a la vez mirando tres símbolos cada uno, has abierto 30,000 conexiones upstream. La mayoría de los proveedores de datos de mercado te limitarán antes del mediodía. Los que no lo hagan te enviarán una factura que se encargará de hacerlo.
El patrón fan-out
Vera Charts hace un fan-out en el servidor: una conexión upstream por símbolo, sin importar cuántos clientes lo estén mirando. Cuando la primera pestaña se suscribe a BTCUSDT, abrimos el WebSocket upstream. Cuando se suscribe la pestaña número diez mil, simplemente la incorporamos al conjunto de suscriptores en memoria y empezamos a enviar el mismo flujo de ticks a su canal SSE.
Cuando la última pestaña cancela la suscripción, mantenemos el upstream abierto unos segundos (porque casi siempre alguien vuelve a abrirla) y luego lo cerramos. Desde el punto de vista del proveedor, somos un único cliente por símbolo, incluso cuando diez mil traders están mirando.
Cómo se traduce en el costo del proveedor
Para cripto usamos el WebSocket público de Binance: sin clave de API, sin límite de peticiones a nuestra escala, sin costo por mensaje. Ese es el caso fácil. En forex, donde todos los proveedores cobran por símbolo o por tick, el fan-out es lo que hace que la plataforma sea económicamente viable. Pagamos por los símbolos a los que nos suscribimos, no por las pestañas que se suscriben a nosotros.
Esta es la parte de la arquitectura que más les importa a nuestras prop firms asociadas. No quieren que la factura de datos de mercado de su plataforma crezca de forma lineal con el número de traders. Con el fan-out, no crece así. La factura escala con la cantidad de símbolos únicos, que es limitada.
En qué no se hacen concesiones
- Fidelidad de ticks: cada suscriptor recibe cada tick. El fan-out no muestrea ni agrupa.
- Gestión de la contrapresión (backpressure): los suscriptores lentos no pueden ralentizar el upstream. Se ponen en cola y, si se quedan demasiado atrás, se descartan.
- Lista blanca de símbolos: los clientes no pueden pedir símbolos arbitrarios. El servidor aplica la lista blanca antes de abrir un nuevo upstream.
Si estás evaluando plataformas para tu firma y la conversación todavía no ha llegado a las conexiones upstream, pregunta. La respuesta te dice mucho sobre cómo se va a comportar la factura de la plataforma cuando crezcas.