VOLTAR à lista de blogs
Learn About

Desempenho do DecisionRules: números reais de latência e throughput dos nossos testes de carga

Testes de carga independentes na AWS mostram que o DecisionRules oferece latência p95 abaixo de 10 ms e mais de 35.000 solicitações por segundo por nó para as tabelas de decisão testadas.

DecisionRules load test results showing real latency and throughput performance

A maioria das afirmações de desempenho no mercado de motores de regras não pode ser verificada. Expressões como “tempos de resposta abaixo de um segundo”, “escala massiva” e “throughput de nível empresarial” são comuns, mas ajudam pouco na elaboração de um plano de capacidade.

Para obter números reais, medimos o comportamento do DecisionRules no Kubernetes usando tabelas de decisão como caso de teste. Todos os números deste documento vêm de testes de carga reais, não de estimativas teóricas.

Resumo rápido:

  • Uma regra de complexidade média é resolvida, em média, em menos de 3 milissegundos.
  • Sob carga máxima, a mesma plataforma processa mais de 100.000 decisões por segundo, com latência média de 10 milissegundos.
  • Throughput e latência nem sempre são excludentes quando há escalabilidade horizontal adequada.


Resumo das métricas de desempenho verificadas

MetricValueConditions
Median latency – decision tables 2.94 ms 500 req/s, 3 case avg (small/middle/large)
Median latency – decision trees 2.59 ms 500 req/s, 3 case avg
Median latency – script rules 7.84 ms 500 req/s, data transformation use case
Median latency – workflows (small) 3.35 ms 500 req/s, 3 case avg
Median latency – workflows (medium/large) 4.98 ms 500 req/s, 3 case avg
Blended median latency 3.83 ms 500 req/s, 13 test cases
Blended p95 latency 5.29 ms 500 req/s, 13 test cases
Best case – small decision tree 1.51 ms Package-delivery-pricing example
Worst case – script rule p95 10.58 ms Data transformation
Worst case – non-script rule p95 9.87 ms Sequential decision flow


O que testamos e como

  • Gerador de carga: k6 — teste de estresse via HTTP
  • Implantação: cluster Kubernetes sem escalabilidade automática
  • Região: geradores de carga e cluster na mesma região da AWS
  • Validação: somente solicitações que retornaram HTTP 200 e passaram pela validação de conteúdo foram consideradas bem-sucedidas


Tipos de regras testados:

  • Tabelas de decisão pequenas, médias e grandes
  • Scripting Rules para transformação de dados
  • Workflows pequenos e grandes
  • Decision Flows executando de 1 a 10 regras por execução

Todas as solicitações passaram pela validação e a taxa de erros foi de 0%.


Ambiente usado nos testes

Números brutos significam pouco sem as especificações. Estas são as características do ambiente:

Ambiente de teste

Application nodes 3 × c7g.xlarge (4 vCPU, 8 GiB RAM)
In-memory cache Enabled
Redis cache.t4g.micro
Load generator 1 × m7i.2xlarge (K6)

Os testes foram executados em um ambiente fixo da AWS com três nós de aplicação baseados em instâncias Graviton (ARM) e um nó adicional para o Redis. Neste teste, o Redis teve pouco trabalho porque o cache em memória estava ativado: as regras permaneceram na memória e não foram atualizadas durante os testes, mantendo baixa a carga do Redis. Todos os testes partiram de uma instância do k6 no mesmo ambiente para evitar ruído adicional nos resultados.


Como usar estes números

Ao dimensionar uma implantação. O throughput máximo superou 35.000 solicitações por segundo por nó. O resultado dependerá das regras executadas no DecisionRules e dos requisitos de desempenho da aplicação. Podemos ajudar a definir a configuração e a escalabilidade ideais para cada caso.

Se você tiver um SLA de latência. Em todas as regras testadas, o p95 permaneceu abaixo de 10 ms com 500 solicitações por segundo. Esse valor pode ser ajustado alterando a configuração para regras específicas ou adicionando escalabilidade.

Ao projetar a lógica de decisão. Consolide as chamadas. Executar 10 regras dentro de um fluxo pode levar apenas cerca de duas vezes o tempo de uma regra, pois a viagem de ida e volta pela rede ocorre uma única vez.

Ao comparar motores. Compare distribuições de percentis, não médias. É fácil obter uma boa média sendo rápido no caminho ideal. A diferença entre p50 e p95 mostra se o sistema cria filas — e filas são o que comprometem sistemas em produção.


Escopo e limitações

Os resultados se baseiam em uma configuração fixa e em uma implantação dentro da mesma região. Considere os seguintes pontos:

  • Tamanho do payload: ao processar mais de 10 milhões de solicitações por minuto, o tamanho dos dados importa.
  • A latência de rede não está incluída: chamadas entre regiões acrescentam tempo.
  • São resultados reais medidos, não máximos teóricos.
  • Eles se aplicam ao conjunto específico de regras e ao ambiente testado.

Conclusão

Estes testes reais mostram que o DecisionRules escala para um throughput elevado mantendo latência baixa e consistente, zero erros e alta confiabilidade.

Seja para avaliar um novo motor, projetar um sistema empresarial ou planejar milhões de decisões diárias, essas medições trazem clareza e confiança à tomada de decisão.

Ondrej Brejla

Ondrej Brejla

Consultor de Soluções

Ondřej Brejla trabalha na DecisionRules, onde ajuda empresas a projetar e implementar soluções de automação de decisões que tiram as regras de negócio de sistemas codificados e as colocam em um formato que as equipes de negócio podem gerenciar diretamente. Ele foca em regras de negócio, integrações de sistemas e em ajudar equipes de tecnologia a projetar processos nos quais os usuários de negócio possam assumir a responsabilidade por partes das aplicações.