Recentemente, a LinkedIn trouxe novidades que podem mudar completamente o cenário de armazenamentto de logs e sistemas de Pub/Sub. Com o anúncio do Northguard e Xinfra, a gigante das redes sociais profissionais está propondo uma solução que vai muito além do que o Kafka pode oferecer.

Introdução

Ao longo dos anos, o Kafka se tornou um dos pilares fundamentais para o gerenciamento de dados em tempo real. No entanto, à medida que o volume de dados cresce — como os impressionantes 32 trilhões de registros por dia que a LinkedIn lida — as limitações do Kafka começaram a se tornar evidentes. É aqui que entram o Northguard e o Xinfra, prometendo não apenas resolver problemas, mas também abrir novas possibilidades para arquitetos de software e desenvolvedores.

Norte de Inovação: Northguard

O Northguard surge como um sistema de armazenamento de logs escalável que substitui o Kafka. Sua arquitetura inovadora permite a organização de dados em registros, segmentos, intervalos e tópicos. Cada um desses elementos desempenha um papel crucial na eficiência do sistema. Por exemplo, enquanto os registros são as unidades de dados, os segmentos são imutáveis e garantem uma replicação robusta.

Como Funciona?

Os segmentos são agrupados em intervalos que representam um slice contíguo do espaço de chaves, permitindo que o sistema se divida e se una dinamicamente. Isso significa que, ao contrário do que ocorre com as partições tradicionais do Kafka, as divisões de intervalo não interrompem a gravação dos clientes, o que é um verdadeiro salva-vidas em ambientes de alta demanda.

Desempenho e Consistência

O Northguard utiliza um modelo de metadados que é fragmentado e replica através de máquinas de estado distribuídas. Isso elimina gargalos que costumavam ser atribuídos ao controlador único do Kafka. A abordagem de consistência forte e alta disponibilidade garante que milhões de réplicas possam ser gerenciadas de forma eficiente.

Protocolos Otimizados

Os engenheiros da LinkedIn também se preocuparam em otimizar os protocolos do Northguard. Operações de metadados como criar, deletar e consultar são realizadas com chamadas de requisição/ resposta direcionadas aos líderes dos vnodes. Isso é essencial para maximizar a taxa de transferência e minimizar a latência. E, claro, a durabilidade é garantida com confirmações que ocorrem somente após a gravação em todos os réplicas.

Xinfra: A Ponte entre Sistemas

Para facilitar a transição do Kafka para o Northguard, a LinkedIn desenvolveu o Xinfra, uma camada de Pub/Sub virtualizada. Isso permite que as aplicações migrem sem downtime, uma nescessidade crítica para milhares de aplicativos mission-critical que dependem de dados em tempo real. Ou seja, é possível operar com tópicos que abarquem tanto o Kafka quanto o Northguard, usando mecanismos de escrita dupla.

Implementação Prática

O armazenamento de segmentos no Northguard é pluggable, o que significa que você pode escolher a implementação que melhor se adapta às suas necessidades. O "fps-store", por exemplo, é otimizado para durabilidade e latência, utilizando logs de pré-gravação e mantendo índices esparsos em RocksDB. Esse tipo de flexibilidade é vital para lidar com cargas de trabalho crescentes.

Dicas para Arquitetos de Software

Conclusão

O Northguard e o Xinfra representam uma evolução significativa na forma como lidamos com dados em tempo real. Para arquitetos de software e desenvolvedores, isso não é apenas uma nova ferramenta; é uma oportunidade de reimaginar como projetamos sistemas escaláveis e resilientes. Acredito que, ao nos adaptarmos a essas novidades, podemos não apenas melhorar a eficiência das nossas aplicações, mas também garantir que elas sejam preparadas para o futuro.

Se você está lidando com grandes volumes de dados, vale a pena considerar como essas soluções podem se encaixar na sua arquitetura. Afinal, numa era onde a informação é o novo petróleo, ter um sistema robusto e escalável é mais do que uma vantagem competitiva; é uma necessidade.