top of page
pedrobusko

Apache Kafka NÃO é streaming de dados em tempo real!

Este é um artigo traduzido originalmente publicado no blog do Kai Waehner: "Apache Kafka is NOT real real-time data streaming!". Assine a newsletter do Kai para se manter atualizado com novas publicações.


Os dados em tempo real superam os dados lentos. É tão fácil! Mas o que é tempo real? O termo sempre precisa ser definido ao discutir um caso de uso. Apache Kafka é o padrão de fato para streaming de dados em tempo real. Kafka é bom o suficiente para quase todos os cenários em tempo real. Mas software proprietário dedicado é necessário para casos de uso de nicho. Kafka NÃO é a escolha certa se você precisar de latência de microssegundos! Esta postagem explora a arquitetura da NASDAQ que combina negociações críticas na bolsa de valores com análises de streaming de baixa latência.

Apache Kafka NÃO é streaming de dados em tempo real!

O que é streaming de dados em tempo real?


Apache Kafka é o padrão de fato para streaming de dados . No entanto, cada empresa tem uma compreensão diferente dos dados em tempo real. E Kafka não consegue resolver todos os problemas em tempo real.

Hard real-time é uma rede determinística com zero picos e zero latência . Esse é um requisito para sistemas embarcados que usam linguagens de programação como C, C++ ou Rust para implementar software crítico para a segurança, como sistemas de controle de voo ou robôs colaborativos (cobots). O Apache Kafka não é a tecnologia certa para requisitos de latência críticos para a segurança .

Soft real-time é o processamento de dados em uma rede não determinística com possíveis picos de latência . Os dados são processados ​​quase em tempo real. Isso pode ser microssegundos, milissegundos, segundos ou mais lento.


Categorias em tempo real para streaming de dados com Apache Kafka


Normalmente vejo três tipos de casos de uso em tempo real. Mas mesmo aqui, o Apache Kafka não se enquadra em todas as categorias:

  • Tempo real crítico : conjunto limitado de casos de uso que requerem processamento de dados em microssegundos. Caso de uso famoso: negociação em mercados de serviços financeiros. Este NÃO é Kafka.

  • Tempo real de baixa latência : o processamento rápido de dados é necessário em dezenas ou centenas de milissegundos para permitir casos de uso específicos. Exemplos: análise de sensores na fabricação, correlação de dados ponta a ponta em aplicativos móveis e backends e detecção de fraudes em pagamentos instantâneos. Este é Kafka.

  • Quase em tempo real : o processamento rápido de dados melhora o processo de negócios, mas não é obrigatório. Por exemplo, a ingestão de dados (streaming ETL) em um data warehouse é melhor em segundos do que um processo em lote executado todas as noites. Este é Kafka.

Observe que este artigo se concentra no Apache Kafka, pois é o padrão de fato para streaming de dados. No entanto, o mesmo se aplica a muitas tecnologias complementares ou competitivas, como Spark Streaming, Apache Flink, Apache Pulsar ou Redpanda.

Vejamos um exemplo concreto da indústria de serviços financeiros…


Feeds de mercado da NASDAQ versus dados em tempo real


Ruchir Vani, Diretor de Engenharia de Software da Nasdaq , apresentou no “Current 2022 – the Next Generation of Kafka Summit” em Austin, Texas: Melhorando a Confiabilidade dos Feeds de Assinatura de Dados de Mercado .

A Nasdaq Stock Market (National Association of Securities Dealers Automated Quotations Stock Market) é uma bolsa de valores americana com sede na cidade de Nova York. Está em segundo lugar na lista de bolsas de valores por capitalização de mercado das ações negociadas, atrás da Bolsa de Valores de Nova York. A plataforma de bolsa é propriedade da Nasdaq, Inc. Embora a maioria das pessoas conheça apenas a bolsa de valores , ela é apenas a ponta do iceberg.

Nasdaq


Serviço de dados em nuvem Nasdaq desenvolvido por Apache Kafka


O Nasdaq Cloud Data Service democratizou o acesso a dados financeiros para empresas, pesquisadores e educadores . Esses consumidores downstream têm requisitos e SLAs diferentes.

O mecanismo principal para processar os feeds de dados de mercado requer latência inferior a 15 microssegundos . Este NÃO é Kafka , mas sim um software proprietário dedicado (caro). Os consumidores precisam estar localizados no mesmo local e usar aplicativos otimizados para aproveitar os dados nessa velocidade.

Nasdaq & Data Distribution

A NASDAQ, Inc. queria conquistar mais participação de mercado fornecendo serviços adicionais além do feed de mercado crítico . Eles construíram um serviço chamado Nasdaq Data Link Streaming. Kafka alimenta isso :

Nasdaq Data Link Streaming

A arquitetura a seguir mostra a combinação. Cargas de trabalho críticas em tempo real são executadas nos data centers da Nasdaq . Os feeds de dados são replicados para a nuvem pública para processamento e análise adicionais. Os comerciantes do mercado precisam co-localizar-se com o mecanismo crítico em tempo real. Outros assinantes internos e externos (como consumidores de pesquisa e educação) consomem da nuvem com baixa latência, quase em tempo real, ou mesmo em lotes do armazenamento de dados históricos :

Nasdaq Data Link Streaming


Tempo real é uma tecnologia proprietária (cara) e raramente é necessária


Os dados em tempo real superam os dados lentos. Apache Kafka e tecnologias semelhantes, como Apache Flink, Spark Streaming, Apache Pulsar, Redpanda, Amazon Kinesis, Google Pub Sub, RabbitMQ e assim por diante, permitem mensagens ou streaming de dados em tempo real de baixa latência .

O Apache Kafka se tornou o padrão de fato para streaming de dados porque o Kafka é bom o suficiente para quase todos os casos de uso . A maioria dos casos de uso nem se importa se o processamento ponta a ponta leva 10 ms, 100 ms ou mesmo 500 ms (já que os aplicativos downstream não são criados para essa velocidade de qualquer maneira). Cenários de nicho exigem tecnologia dedicada . Kafka NÃO é a escolha certa se você precisar de latência de microssegundos! O exemplo da NASDAQ mostrou como a tecnologia proprietária crítica e o streaming de dados de baixa latência funcionam muito bem juntos.


Se você quiser ver mais casos de uso, leia minha postagem sobre streaming de dados de baixa latência com Apache Kafka e infraestrutura 5G nativa da nuvem .


Que tipo de tempo real você precisa em seus projetos? Quando você precisa de tempo real crítico? Se você “apenas” precisa de baixa latência, para qual caso de uso o Kafka não é bom o suficiente? Conecte comigo e com o Kai no LinkedIn e vamos discutir isso! Mantenha-se informado sobre as novas postagens do blog assinando a newsletter.

167 visualizações0 comentário

Comments


bottom of page