Para um sistema de trading ou de ad tech em que uma resposta atrasada conta como errada, a empresa externa certa trabalha na mesma faixa do seu deadline e consegue mostrar como os números de velocidade dela foram medidos. A empresa da sua preferência deve medir o seu sistema em produção antes de construir qualquer coisa.
Nenhuma lista de empresas de desenvolvimento de software de baixa latência serve para todo comprador, porque o termo cobre deadlines que podem diferir um milhão de vezes entre si. Em hardware de trading, pode significar dezenas ou centenas de nanossegundos. Em um app ou em uma página web, uma resposta em cerca de um décimo de segundo já parece instantânea para quem a usa. Então a primeira pergunta é onde fica o seu próprio deadline.
A resposta curta: escreva o seu deadline e os dois pontos entre os quais ele é medido, e pergunte a cada empresa quais dos sistemas que ela construiu já rodam nessa faixa em produção. Antes que alguém construa qualquer coisa, pague a empresa da sua preferência para medir o seu sistema em produção, e fique com o relatório, seja qual for a sua decisão.
Leia também
Para o seu sistema, baixa latência é um deadline medido entre dois pontos que você consegue nomear. Os deadlines se dividem em quatro grandes faixas:
Um mesmo produto pode ter partes em faixas diferentes. Um trader lê os preços em uma tela, enquanto a ordem que esse trader envia pode ter que cumprir um deadline bem mais apertado no caminho até o local de negociação. Escreva cada deadline com os dois pontos entre os quais ele é medido. A faixa em que cada um cai diz qual tipo de empresa chamar.
Este artigo não faz ranking de empresas. O tipo certo de empresa depende da sua faixa e do trabalho que você precisa que seja feito:
Muitas empresas se encaixam em mais de um tipo, então pergunte que tipo de trabalho os engenheiros alocados para você já fizeram.
O artigo sobre times dedicados, com link acima, lista o que deve acompanhar cada número de performance e traz um checklist que você pode colar em uma solicitação de proposta (RFP). As perguntas abaixo descobrem como os números da própria empresa foram produzidos.
Pergunte onde o relógio começa e onde ele para. A OPRA, que publica os negócios e as cotações consolidados das bolsas de opções dos EUA, inicia o relógio quando uma mensagem de entrada “chega à entrada da aplicação no ambiente da OPRA” e o para quando a mensagem de saída “chega à saída da aplicação do ambiente da OPRA”. A definição da UE citada acima é igualmente precisa sobre os dois pontos. Um número sem pontos de início e fim definidos não pode ser comparado com o seu.
Olhe as respostas mais lentas, além da típica. Nas métricas publicadas pela OPRA, a latência mediana, o valor do meio, foi de 19,5 microssegundos em janeiro de 2024 e de 20,5 em fevereiro. Nos mesmos dois meses, o percentil 99, o tempo que só o 1 por cento mais lento das mensagens ultrapassou, caiu de 543,5 microssegundos para 57,5. Um relatório só com a mediana teria mostrado quase nenhuma mudança.
As médias também escondem as respostas lentas. O livro Site Reliability Engineering, do Google, publicado pela O'Reilly em 2016, descreve um serviço web com latência média de 100 milissegundos a 1.000 requisições por segundo, em que “1% das requisições pode facilmente levar 5 segundos”. Peça o percentil 99 de cada caminho e, se o seu sistema processa requisições suficientes para medi-lo, o percentil 99,9, que só 1 resposta em 1.000 ultrapassa.
Verifique a carga por trás de cada número. Na visão geral do STAC de 2020, o STAC-T0 envia o tráfego de teste em três taxas. A mais baixa é “pensada para ver como os sistemas se comportam quando estão quase ociosos”, e a mais alta, normalmente perto do máximo que o sistema testado aguenta, existe “para ver como os sistemas se comportam quando estão muito ocupados”. Peça números do seu próprio minuto mais movimentado, ou de um teste que o reproduza.
Pergunte como o teste de carga foi feito. Muitas ferramentas de teste de carga enviam uma requisição, esperam a resposta e só então enviam a próxima. Quando o sistema trava, uma ferramenta assim para de enviar, então as requisições que teriam chegado durante a paralisação nunca são medidas.
Gil Tene, autor da ferramenta de teste de carga wrk2, chama esse efeito de coordinated omission. Na documentação da ferramenta, alterada pela última vez em setembro de 2019, ele escreve que “respostas de alta latência fazem com que o gerador de carga se coordene com o servidor para evitar medições durante os períodos de alta latência”. A ferramenta dele envia requisições a uma taxa fixa e mede cada resposta “a partir do momento em que a transmissão deveria ter ocorrido”. Pergunte se a ferramenta da empresa funciona assim, ou como os resultados dela foram corrigidos.
Pergunte onde cada timestamp foi registrado. Para latências em microssegundos, a visão geral do STAC chama um benchmark com timestamps de software de “a melhor opção”. Ela também alerta que os pequenos atrasos irregulares dos timestamps de software “podem representar um erro considerável ao medir latências de dezenas ou centenas de nanossegundos”, e o STAC-T0, em vez disso, registra os timestamps em hardware. Uma empresa que cita nanossegundos deve conseguir mostrar onde os timestamps de hardware dela foram registrados.
Se você ainda não sabe o que está errado, só que o sistema parece mais lento ou custa mais do que deveria, comece por aqui. Pague a empresa da sua preferência por uma medição de escopo fechado do seu sistema em produção, com um relatório que continua seu, seja qual for a sua decisão seguinte. Combine por escrito o que a empresa pode instalar ou alterar para fazer as medições, e como as ferramentas dela são removidas depois.
O relatório deve mostrar:
Para sistemas de trading, o artigo sobre execução lenta de ordens, com link acima, lista os quatro timestamps a registrar em cada ordem. Em ad tech, os artigos sobre picos de tráfego e sobre timeouts de DSP tratam do que medir em um pico e em cada conexão de exchange.
Avalie a empresa pelo relatório. Se os seus próprios engenheiros conseguiriam agir com base nele sem a empresa, você pode escolher quem faz o trabalho seguinte a partir de números reais, seja essa empresa ou outra.
Se uma empresa propõe uma nova linguagem, o artigo com link abaixo mostra como os engenheiros verificam se a linguagem é a causa.
A amBrain diagnostica sistemas lentos em trading e ad tech: a plataforma em funcionamento é medida de ponta a ponta, e o relatório aponta para onde vai o tempo. O trabalho dela em trading inclui desenvolvimento de terminais de trading, sistemas de gestão de ordens e integração com bolsas via protocolo FIX.
Em AdTech, a amBrain trabalha com desenvolvimento de DSP, plataformas de real-time bidding e engenharia de ad exchange.
A amBrain trabalha em três formatos: entrega completa, time dedicado ou engenheiros embarcados no seu time. O cliente mantém a propriedade integral do produto e do código, exceto dos componentes reutilizáveis da amBrain.
A amBrain constrói software desde 2019.
Este artigo não é um estudo de caso e não descreve nenhum trabalho para clientes. Ele não cita nenhum número de latência de qualquer sistema que a amBrain tenha construído, nem preços ou prazos.
Pergunte à amBrain, ou a qualquer outra empresa da sua lista, o que ela mediria primeiro no seu sistema, e submeta todas as empresas às mesmas verificações.
Traga sua arquitetura atual e o modo de falha que preocupa você, e vamos analisá-lo juntos em meia hora.