BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Netflix Delta - uma plataforma para sincronização e enriquecimento dos dados

Netflix Delta - uma plataforma para sincronização e enriquecimento dos dados

Grandes sistemas frequentemente utilizam numerosos data stores, cada um usado para tarefas específicas como guardar certos tipos de dados, buscas avançadas, ou cache. As vezes é necessário manter múltiplos data stores sincronizados, e enriquecer os dados chamando serviços externos. Para atender essa necessidade, o Netflix criou o Delta, uma plataforma orientada a eventos para sincronização e enriquecimento de dados. A equipe por trás do Delta, todos engenheiros seniores na Netflix, descreveram os desafios e forneceram um overview sobre o design do Delta.

Existem vários patterns e soluções para manter dois data stores sincronizados, tais como dual writes, usando log tables e transações distribuídas. A equipe viu problemas e limitações com essas soluções, e então decidiram criar o Delta.

Além da sincronização de data stores, sem as limitações em soluções existentes, o Delta é projetado para permitir que o dado seja enriquecido chamando outros serviços. Durante a sincronização, eventos de captura de mudança de dados (change data capture - CDC) são lidos de um data store usando o conector Delta e o Keystone (o pipeline de streaming de dados usando Kafka), e gravam em um tópico. Uma aplicação delta então le os eventos do tópico, chama outros serviços para coletar mais dados, e finalmente salva os dados enriquecidos em outro data store. A equipe afirma que todo o processo é quase em tempo real, o que significa que os armazenamentos de dados, dependendo da sincronização, são atualizados imediatamente após o armazenamento original.

Synchronization using Delta

O Conector Delta é um serviço CDC que captura as mudanças dos logs transacionais e envia o dump para o data store. Os dumps são usados porque a equipe descobriu que os logs tipicamente não contém todo os histórico de mudanças. Normalmente as mudanças lidas são serializadas como eventos Delta para auxiliar um consumidor a lidar com diferentes tipos de alterações. A equipe observa que o Delta também oferece algumas funcionalidades avançadas, incluindo a habilidade de gerar dumps a qualquer momento, sem locks nas tabelas, e com alta disponibilidade através do uso de instâncias em standby.

A camada de transporde de eventos do Delta é baseada na plataforma de mensagens do Keystone do Netflix. Para assegurar que os eventos cheguem aos stores derivados, é oferecido um cluster Kafka construído com um fator de replicação aumentado e manipulação de instâncias do broker para lidar melhor com esse requisito. Em situações extremas, eventos podem se perder, e então decidiram usar um sistema de rastreamento de mensagens para detectar isso.

A camada de processamento do Delta é baseada na plataforma Netflix SPaaS, que fornece integração com o ecosistema do Apache Flink. O framework fornece funcionalidade para as necessidades de processamento comum e usa uma DSL orientada a anotações para definir um processo. Com isso os usuários podem se concentrar nas regras do negócio, na operação simplificada e na otimização transparente para os usuários.

O Delta está em produção a aproximadamente um ano, e a equpe de desenvolvimento acredita que o mesmo tem sido crucial para uma série de aplicações do Netflix Studio. O Delta simplificou a implementação de casos de uso pelas equipes, como indexação de pesquisa, data warehousing e workflows orientados a eventos.

Os autores pretendem descrever os principais componentes da Delta com mais detalhes.

Existem uma série de outras ferramentas disponíveis para CDC, uma delas é o Debezium que foi apresentado na MicroXchg Conference 2019 em Berlim.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT