Streaming data architecture

Uma arquitectura de streaming data architecture é uma estrutura de tecnologia de informação que coloca o foco no processamento de dados em movimento e trata o processamento em lote de extract-transform-load (ETL) como apenas mais um evento num fluxo contínuo de eventos. Este tipo de arquitetura tem três componentes básicos -- um agregador que reúne fluxos de eventos e arquivos em lote de uma variedade de fontes de dados, um corretor que disponibiliza dados para consumo e um mecanismo analítico que analisa os dados, correlaciona valores e combina fluxos.

O sistema que recebe e envia fluxos de dados e executa a aplicação e a lógica analítica em tempo real é chamado de processador de fluxo. Como uma arquitetura de streaming de dados suporta o conceito de sourcing de eventos,, reduz a necessidade dos desenvolvedores de criar e manter bancos de dados compartilhados. Em vez disso, todas as alterações no estado de uma aplicação são armazenadas como uma sequência de disparos de processamento por eventos (ESP) que podem ser reconstruídos ou consultados quando necessário. Ao receber um evento, o processador de streaming reage em tempo real ou quase em tempo real e aciona uma ação, como lembrar do evento para referência futura.

A crescente popularidade das arquiteturas de streaming de dados reflete uma mudança no desenvolvimento de serviços e produtos de uma arquitetura monolítica para uma arquitetura descentralizada construída com microserviços. Este tipo de arquitetura é normalmente mais flexível e escalável do que uma arquitetura clássica de aplicação centrada em banco de dados, pois ela co-localiza o processamento de dados com o armazenamento para diminuir os tempos de resposta da aplicação (latência) e melhorar o throughput. Outra vantagem do uso de uma arquitetura de streaming de dados é que ela leva em conta o tempo em que um evento ocorre, o que facilita a partição e distribuição do estado e processamento de uma aplicação em muitas instâncias.

Arquiteturas de streaming de dados permitem que os desenvolvedores desenvolvam aplicações que usam dados vinculados e não vinculados de novas maneiras. Por exemplo, a equipe de infraestrutura de busca da Alibaba usa uma arquitetura de streaming de dados alimentada pelo Apache Flink para atualizar detalhes de produtos e informações de inventário em tempo real. O Netflix também usa Flink para suportar seus mecanismos de recomendação e o ING, o banco global com sede na Holanda, usa a arquitetura para evitar roubo de identidade e fornecer melhor proteção contra fraudes. Outras plataformas que podem acomodar tanto o processamento em fluxo como em lote incluem Apache Spark, Apache Storm, Google Cloud Dataflow e AWS Kinesis.