Atualmente podemos encontrar diversas soluções no mercado que disponibilizam serviços de streaming de dados, como o Apache Kafka, AWS Kinesis e a última versão do RabbitMQ. Essas tecnologias nos ajudam a armazenar dados de alta volumetria e ainda prepará-los para serem distribuídos entre outros sistemas.
Mas, mesmo com essa variedade de message brokers que garantem a comunicação entre os nossos sistemas, é natural procurarmos alternativas mais eficazes, que façam a diferença no throughput das aplicações.
Então temos o Apache Pulsar.
O Apache Pulsar é uma solução open source e na sua versão 2.9 ela já concorre com os serviços do Apache Kafka. Seguindo basicamente o mesmo princípio, essa tecnologia também trabalha com producers, consumers e topics por onde os dados são transmitidos.
E, além da parte de mensageria, também conta com recursos que promovem um grande diferencial frente à rotina de grandes empresas que precisam de soluções e possuem diversas áreas, times e outras verticais nesse contexto.
No Apache Kafka geralmente criamos tópicos para produção e consumo, mas eventualmente precisamos separar os contextos desses tópicos para conseguirmos gerenciá-los. Ele consegue trabalhar de forma multi-tenancy, viabilizando a separação de contextos totalmente diferentes e ainda lida com uma enorme quantidade de tópicos num armazenamento praticamente ilimitado.
Assim como o Apache Kafka, o Pulsar também trabalha de forma distribuída e também possui uma ferramenta chamada BookKeeper para armazenamento de dados. E diretamente dos books, o Pulsar disponibiliza facilmente as informações que precisamos.
Eventualmente podemos armazenar os books numa S3, por exemplo, para mantermos a retenção de dados ilimitada e os dados mais quentes são captados pelos próprios brokers do Pulsar. Pode haver uma latência um pouco maior caso o dado seja muito antigo, mas também é possível pegar essa informação diretamente do S3.
Essa é uma tecnologia que conta com uma alta velocidade, mesmo funcionando num formato de logs, assim como o Apache Kafka, mas a gravação é muito rápida em disco e a leitura de um órgão é muito simples e estruturada.
O padrão Tail do Pulsar também mantém as suas últimas informações num cache em memória, fazendo com que a latência e o response também sejam muito mais rápidos nesse quesito.
Utilizar recursos como a geo-replication nos permitem replicar geograficamente os dados para trabalhar de forma distribuída. E além disso, ele também disponibiliza uma API Rest para fazer a chamada e definir que as informações caiam diretamente num tópico.
Podemos citar outras vantagens como: Load Balancer e API Rest; a garantia da ordem de entrega, mantendo o curso de quem consome, como em outras tecnologias. E assim como o KsqlDB, também é possível rodar queries em relação a todos os dados.
Essa é uma tecnologia que funciona tanto através do Kubernetes, quanto num formato bare metal ou em máquinas virtuais. Você também pode utilizar o Pulsar nas principais linguagens do mercado, como: Java, Go, Python, C++, Node.js, Websockets e Lib para C#.
Num estudo de caso podemos observar que o Mercado Livre possui uma tecnologia chamada BigQ, que funciona como um proxy, uma camada de abstração que nos permite trabalhar diretamente com o Apache Pulsar e também com o Google Pub/Sub. Assista em nosso canal clicando aqui.
E como o Mercado Livre trafega milhões de mensagens diariamente, você pode tomar isso como um exemplo de que essa ferramenta já é bastante consolidada.
Para concluir, essa é definitivamente uma tecnologia promissora que surgiu para inovar as estruturas dos message brokers e sistemas de stream, além ser uma ferramenta muito adequada para quem pretende se atualizar nos sistemas de mensageria.
Se você curtiu esse conteúdo e quer aprender mais sobre Apache Pulsar, clique aqui, solicite contato e nós te ajudamos.
Confira também: o que você precisa saber para ser um Full Stack.



Curso Full Cycle 4.0
Curso Full Cycle 4.0 Juniors
MBA em Engenharia de Software com IA
MBA Arquitetura Full Cycle
Pós Liderança Técnica
Pós GO Expert
Devops Pro