Já sabemos que Big Data é o centro das atenções no mercado de trabalho, e quando falamos de novas tecnologias qualquer empresa hoje sabe o que precisa fazer, mesmo que ainda não saiba como.

Neste contexto, vemos que real time é o objetivo final das empresas, para dar maior vazão as necessidades do mercado, que a cada dia quer mais e mais agilidade.

Fazer uma ação hoje, e esperar mais de um dia para receber seus benefícios, já são considerados inaceitáveis. Sendo modelos tecnológicos arcaicos e fora da expectativa do usuário final.

Neste sentido, para obter vantagem competitiva no mercado. Cabe ao Arquiteto definir a estrutura que será usada para real time e near real time. A Arquitetura Lambda e a Kappa trazem novas formas de se trabalhar com o dados de maneira a trazer valor para o negócio.

Arquitetura Lambda

Nesta arquitetura é possível separar os dados, enviando o que é real time para a camada Speed Layer/Fast Layer e o que é Batch para a camada Batch Layer. Dessa forma, é possível processar os dados mais pesados em uma camada preparada para isso. Enquanto os dados de real time passam por uma outra camada, que faz as interceptações necessárias para enriquecimento e agregações conforme necessidade do dado.

  • Batch Layer – É uma camada de persistência dos dados que armazena os dados sem nenhuma alteração para preservar o dado original. Isso é muito importante para se ter uma rastreabilidade, permitindo um reprocessamento, caso seja necessário, ou para a verificação do dado bruto.
  • Speed Layer – Processa os dados em tempo real não possuindo a mesma preocupação que a camada batch, mas preocupando-se em disponibilizar o dado o mais rápido possível.
  • Serving Layer – Recebe as saídas tanto da camada Batch quanto da camada Speed. Nessa camada são feitas várias visões sobre os dados disponibilizados para que as áreas realizarem as análises.

Arquitetura Kappa

Essa arquitetura tem propósitos parecidos com a Arquitetura Lambda, mas com a diferença que os dados passam por um único ponto. Essa simplificação resolve o problema da duplicidade e complexidade de gerenciamento. Além de facilitar a rastreabilidade da informações em todas as suas etapas e transformações.

Os dados são ingeridos como um fluxo de eventos em um log unificado distribuído e tolerante a falhas. Os eventos são ordenados e o estado atual do evento é alterado somente quando um novo evento está sendo acrescentado. Funciona em três camadas: um intermediário de mensagens que recebe os dados de origem enquanto os dados são consumidos em tempo real, uma estrutura de processamento de fluxo que transforma os dados de entrada nas visualizações necessárias e o banco de dados de veiculação, que foi transformado e atualizado dados prontos para serem consultados.

Uma desvantagem dessa arquitetura geralmente gira em torno da necessidade de processar esses dados em um fluxo contínuo, na manipulação de eventos duplicados, referência cruzada ou para manter operações de pedidos geralmente mais fáceis de serem feitas no processamento em lote.

Conclusão

Dentro da empresa a utilização da arquitetura Lambda ou Kappa, é apenas questão de entendimento do negócio. No geral, Lambda oferece capacidades maiores de processamento e atendem as necessidades que muitas vezes, são impossíveis de se fazerem em um fluxo real time.

Cabe ao Arquiteto entender a necessidade do negócio e a partir daí definir qual a melhor arquitetura. Já o engenheiro ficará encarregado de montar e gerenciar toda essa estrutura para que os fluxos funcionem e atendam ao negócio.