Para un sistema de trading o de ad tech en el que una respuesta tardía cuenta como una respuesta errónea, la empresa externa adecuada trabaja en el mismo rango que tu deadline y puede mostrar cómo se midieron sus cifras de velocidad. La que prefieras debería medir tu sistema en producción antes de construir nada.
Ninguna lista de empresas de desarrollo de software de baja latencia sirve a todos los compradores, porque el término abarca deadlines que pueden diferir en un factor de un millón. En el hardware de trading puede significar decenas o cientos de nanosegundos. En una app o una página web, una respuesta en torno a una décima de segundo ya le parece instantánea a quien la usa. Así que la primera pregunta es dónde cae tu propio deadline.
La respuesta corta: anota tu deadline y los dos puntos entre los que se mide, y pregunta a cada empresa cuáles de los sistemas que ha construido funcionan ya en producción en ese rango. Antes de que nadie construya nada, paga a la empresa que prefieras para que mida tu sistema en producción, y quédate con su informe decidas lo que decidas.
Seguir leyendo
Para tu sistema, la baja latencia es un deadline medido entre dos puntos que puedes nombrar. Los deadlines se reparten en cuatro grandes rangos:
Un mismo producto puede tener partes en rangos distintos. Un trader lee los precios en una pantalla, mientras que la orden que envía ese trader puede tener que cumplir un deadline mucho más estricto en su camino hacia el centro de negociación. Anota cada deadline con los dos puntos entre los que se mide. El rango en el que cae cada uno te dice a qué tipo de empresa llamar.
Este artículo no hace rankings de empresas. El tipo de empresa adecuado depende de tu rango y del trabajo que necesitas:
Muchas empresas encajan en más de un tipo, así que pregunta qué tipo de trabajo han hecho los ingenieros que te asignen.
El artículo sobre equipos dedicados, enlazado arriba, enumera lo que debería acompañar a cada cifra de rendimiento y da una lista de comprobación que puedes pegar en una solicitud de propuestas. Las preguntas de abajo sirven para averiguar cómo se obtuvieron las cifras propias de una empresa.
Pregunta dónde empieza a contar el reloj y dónde se detiene. OPRA, que publica las operaciones y cotizaciones consolidadas de los exchanges de opciones de Estados Unidos, pone en marcha su reloj cuando un mensaje entrante «llega a la entrada de la aplicación del entorno de OPRA» y lo detiene cuando el mensaje saliente «llega a la salida de la aplicación del entorno de OPRA». La definición de la UE citada arriba es igual de precisa sobre ambos puntos. Una cifra que no nombra sus puntos de inicio y fin no se puede comparar con la tuya.
Mira las respuestas más lentas además de la típica. En las métricas publicadas por OPRA, la latencia mediana, el valor central, fue de 19.5 microsegundos en enero de 2024 y de 20.5 en febrero. En esos mismos dos meses, el percentil 99, el tiempo que solo superó el 1 por ciento más lento de los mensajes, bajó de 543.5 microsegundos a 57.5. Un informe solo con la mediana apenas habría mostrado cambios.
Las medias también esconden las respuestas lentas. El libro Site Reliability Engineering de Google, publicado por O'Reilly en 2016, describe un servicio web con una latencia media de 100 milisegundos a 1000 solicitudes por segundo, en el que «el 1% de las solicitudes podría tardar fácilmente 5 segundos». Pide el percentil 99 de cada ruta y, si tu sistema gestiona suficientes solicitudes para medirlo, el 99.9, que solo supera 1 de cada 1000 respuestas.
Comprueba la carga que hay detrás de cada cifra. En el resumen de STAC de 2020, STAC-T0 envía su tráfico de prueba a tres ritmos. El más bajo está «diseñado para ver cómo se comportan los sistemas cuando están mayormente inactivos», y el más alto, normalmente cerca del máximo que puede soportar el sistema probado, está ahí «para ver cómo se comportan los sistemas cuando están muy ocupados». Pide cifras de tu propio minuto de más carga, o de una prueba que lo reproduzca.
Pregunta cómo se hizo la prueba de carga. Muchas herramientas de pruebas de carga envían una solicitud, esperan la respuesta y solo entonces envían la siguiente. Cuando el sistema se atasca, una herramienta así deja de enviar, de modo que las solicitudes que habrían llegado durante el atasco nunca se miden.
Gil Tene, autor de la herramienta de pruebas de carga wrk2, llama a este efecto coordinated omission. En la documentación de la herramienta, modificada por última vez en septiembre de 2019, escribe que «las respuestas de alta latencia hacen que el generador de carga se coordine con el servidor para evitar medir durante los periodos de alta latencia». Su herramienta envía solicitudes a un ritmo fijo y mide cada respuesta «desde el momento en que debería haberse producido la transmisión». Pregunta si la herramienta de la empresa funciona así, o cómo se corrigieron sus resultados.
Pregunta dónde se tomó cada marca de tiempo. Para latencias en microsegundos, el resumen de STAC considera que un benchmark con marcas de tiempo por software es «la mejor opción». También advierte de que los retrasos pequeños e irregulares de las marcas de tiempo por software «pueden suponer un error considerable al medir latencias de decenas o cientos de nanosegundos», y STAC-T0, en cambio, toma sus marcas de tiempo por hardware. Una empresa que cita nanosegundos debería poder mostrar dónde se tomaron sus marcas de tiempo por hardware.
Si todavía no sabes qué falla, solo que el sistema parece más lento o cuesta más de lo que debería, empieza por aquí. Paga a la empresa que prefieras una medición de alcance cerrado de tu sistema en producción, con un informe que sea tuyo decidas lo que decidas después. Acuerda por escrito qué puede instalar o cambiar la empresa para tomar sus mediciones y cómo se retiran después sus herramientas.
El informe debería mostrar:
Para los sistemas de trading, el artículo sobre la ejecución lenta de órdenes, enlazado arriba, enumera las cuatro marcas de tiempo que hay que registrar en cada orden. En ad tech, los artículos sobre picos de tráfico y sobre los timeouts de una DSP tratan qué medir en un pico y en cada conexión con un exchange.
Juzga a la empresa por su informe. Si tus propios ingenieros pueden actuar a partir de él sin la empresa, podrás elegir con cifras reales quién hace el trabajo siguiente, sea esta empresa u otra.
Si una empresa propone un lenguaje nuevo, el artículo enlazado abajo muestra cómo comprueban los ingenieros si la causa es el lenguaje.
amBrain diagnostica sistemas lentos en trading y ad tech: la plataforma en funcionamiento se mide de extremo a extremo y el informe indica a dónde se va el tiempo. Su trabajo en trading incluye desarrollo de terminales de trading, sistemas de gestión de órdenes e integración con exchanges por protocolo FIX.
En AdTech, amBrain trabaja en desarrollo de DSP, plataformas de real-time bidding e ingeniería de ad exchange.
amBrain trabaja en tres formatos: entrega completa, un equipo dedicado o ingenieros integrados en tu equipo. El cliente conserva la propiedad completa del producto y del código, salvo los componentes reutilizables de amBrain.
amBrain desarrolla software desde 2019.
Este artículo no es un caso de estudio y no describe ningún trabajo para clientes. No cita cifras de latencia de ningún sistema construido por amBrain, ni precios ni plazos.
Pregunta a amBrain, o a cualquier otra empresa de tu lista, qué mediría primero en tu sistema, y somete a todas las empresas a las mismas comprobaciones.
Traiga su arquitectura actual y el modo de fallo que le preocupa, y lo repasaremos juntos en media hora.