Casa do Código - Livros e Tecnologia

  • Programação
  • Lógica
  • Java
  • .NET
  • PHP
  • Games
  • OO
  • Funcional
  • Python
  • Outros
  • Todos
  • Mobile
  • iOS
  • Android
  • Multiplataforma
  • Outros
  • Todos
  • Front-end
  • HTML e CSS
  • JavaScript
  • Outros
  • Todos
  • Infraestrutura
  • Web
  • Dados
  • Outros
  • Todos
  • Business
  • Startups
  • Marketing Digital
  • Gestão
  • Agile
  • UX e Design
  • Outros
  • Todos
  • Inteligência Artificial
  • Você tem 0 itens na sacola 0 Abrir navegação por categorias e busca Ir para ao topo da página

    Use o código e tenha 10% de desconto!

    Kafka e Schema Registry Modelagem de eventos com robustez e segurança

    Rodrigo Vieira Pinto
    Livro de Kafka e Schema Registry

    *Você terá acesso às futuras atualizações do livro.

    Sobre o livro

    O Kafka se destaca como uma das ferramentas mais impactantes e versáteis na computação distribuída. Sua capacidade de lidar com grandes volumes de dados, em tempo real e com alta resiliência, transformou a maneira como sistemas modernos interagem, trocam informações e escalam suas operações. Desde pipelines de dados robustos até sistemas de eventos que conectam microsserviços, o Kafka se tornou um pilar essencial em arquiteturas contemporâneas.

    No entanto, como em qualquer tecnologia poderosa, trabalhar com Kafka apresenta seus próprios desafios. Um dos mais comuns — e críticos — é a necessidade de garantir que os dados enviados e consumidos pelos tópicos mantenham consistência e estrutura ao longo do tempo. Imagine, por exemplo, uma aplicação que consome dados de um tópico e, de repente, recebe uma mensagem com um formato inesperado. Esse pequeno desvio pode causar erros imprevisíveis, comprometer integrações e até mesmo gerar indisponibilidade em sistemas downstream.

    Um sistema downstream recebe dados ou depende de outro sistema para funcionar. Em uma arquitetura que possui o Kafka como um dos seus componentes, temos o sistema produtor de mensagens (que pode ser chamado de upstream) e o que consome as mensagens, chamado de downstream.

    Ao confiar exclusivamente no Kafka para o transporte de mensagens, muitas equipes enfrentam dificuldades em gerenciar a evolução dos formatos de dados (schemas), assegurando compatibilidade entre versões e evitando quebras nos sistemas que dependem dessas informações. Esse cenário não apenas complica o desenvolvimento, como também adiciona complexidade à operação e manutenção de pipelines de dados.

    É aqui que o Schema Registry entra em cena. Essa ferramenta permite que desenvolvedores, operadores e arquitetos registrem, validem e versionem os schemas de mensagens que trafegam nos tópicos Kafka. Com essa solução, as mensagens não são mais um "mistério" que depende de contratos informais ou comunicação verbal entre equipes. Em vez disso, o schema se torna uma fonte de verdade centralizada e confiável, trazendo ordem e previsibilidade para ambientes onde mudanças são inevitáveis.

    Este livro foi pensado para ajudar você a compreender e aproveitar melhor o uso do Schema Registry e transformar a forma como trabalha com o Kafka. Ao longo das próximas páginas, você aprenderá a integrar essa poderosa ferramenta ao seu fluxo de trabalho, entenderá como evoluir schemas de forma segura e garantirá que a comunicação entre os serviços seja sempre consistente.

    Seja você engenheiro(a) de dados, arquiteto(a) de sistemas ou desenvolvedor(a) back-end, este livro oferece o conhecimento necessário para resolver um dos maiores desafios ao trabalhar com sistemas distribuídos baseados em Kafka.

    Bem-vindo(a) a esta jornada. Ao longo das páginas seguintes, você aprenderá como o Schema Registry fortalece as integrações com Kafka, trazendo mais previsibilidade e segurança para seus pipelines de dados. Com esse conhecimento, você estará preparado(a) para construir soluções escaláveis, resilientes e prontas para o futuro.

    Sobre o autor

    Rodrigo Vieira Pinto é mestre em Engenharia de Software pelo IPT-SP (Instituto de Pesquisas Tecnológicas de São Paulo) e pós-graduado em Engenharia de Software pela PUC-SP (Pontifícia Universidade Católica - SP). Possui cerca de 26 anos de experiência em desenvolvimento de sistemas em Java, PHP e Ruby, passando também pela linguagem C. Já trabalhou com servidores de aplicação como JBoss e Websphere, usando frameworks como EJB 2 e 3, JSP/Servlet, JSF e Hibernate (e ficou feliz quando o Spring Boot surgiu). Gosta muito de paradigmas de programação, padrões de projeto, testes automatizados, de código simples que funciona e de compartilhar conhecimento.

    Ministra aulas de programação desde 2018, tanto em cursos livres quanto em faculdades, passando por Caelum, Grupo Alura, SPTech (São Paulo Tech School) e FIAP (Faculdade de Informática e Administração Paulista). Atualmente é Chapter Lead de Arquitetura e Backend da VR Benefícios e professor da disciplina de Domain-Driven Design with Java na FIAP.

    Nas horas vagas, estuda tecnologias alternativas, história do Brasil e religião. Também pratica esportes como natação e corrida, e gosta de assistir a corridas de automóvel.

    Amante de software bem escrito, entende que a tecnologia da informação tem muito a crescer e evoluir — e que nós, muito a contribuir.

    Sumário

    • 1 O Alura Eats - um novo delivery de comida
      • 1.1 Ferramentas a serem instaladas
      • 1.2 Códigos usados por todo o livro
    • 2 Sem controle, sem garantia: a falta que o Schema Registry faz
      • 2.1 Mensagens sem contrato definido e seus problemas
      • 2.2 O Schema Registry
      • 2.3 Inserindo o Schema Registry na nossa solução
      • 2.4 Inserindo um schema para a mensagem
      • 2.5 Inserindo um schema para a chave da mensagem
      • 2.6 Assincronia dos testes de envio de mensagens e sua correção com Awaitility
      • 2.7 Mas e o consumidor?
      • 2.8 Diferenças entre o JsonSerializer e o KafkaJsonSchemaSerializer
      • 2.9 Resumo
    • 3 Explorando a API do Schema Registry: Endpoints, Subjects e Schemas
      • 3.1 O subject e seus schemas
      • 3.2 Cadastrando schemas
      • 3.3 Listando schemas
      • 3.4 Outras buscas
      • 3.5 Remoção soft e hard de schemas
      • 3.6 Remoção soft e hard de subjects
      • 3.7 Resumo
    • 4 Implementando Schema Registry no consumidor de mensagens
      • 4.1 O ms-pedidos em detalhe
      • 4.2 De JsonDeserializer para KafkaJsonSchemaDeserializer
      • 4.3 As constantes JSON_KEY_TYPE e JSON_VALUE_TYPE de KafkaJsonSchemaDeserializerConfig
      • 4.4 Corrigindo os testes
      • 4.5 Tipos primitivos nos atributos das mensagens e seus problemas
      • 4.6 Resumo
    • 5 O Avro como formato de mensagens
      • 5.1 Os problemas do formato JSON, e o Avro como solução
      • 5.2 Realização de pedidos no ms-pedidos
      • 5.3 Implementação do formato Avro na comunicação entre os microsserviços usando AVSC (Avro Schema)
      • 5.4 O plugin avro-maven-plugin
      • 5.5 O protocolo SOAP (Simple Object Access Protocol)
      • 5.6 Cadastro de schemas no Schema Registry
      • 5.7 Resumo
    • 6 Consumidores de mensagens Avro e o AVDL
      • 6.1 Automação do cadastro do schema do tópico de pedidos
      • 6.2 Integração entre o ms-pedidos e o ms-entregadores
      • 6.3 Geração de stubs Avro e implementação do consumidor de pedidos no ms-entregadores
      • 6.4 O Avro IDL (Interface Definition Language)
      • 6.5 Geração de stubs Avro a partir de schemas AVDL
      • 6.6 Cadastro do schema no Schema Registry e o avro-tools
      • 6.7 Implementação do produtor de mensagens
      • 6.8 Resumo
    • 7 Avançando com Schema Registry: Modos de compatibilidade, tipos lógicos do Avro e customizações
      • 7.1 Idempotência das APIs do Schema Registry
      • 7.2 Enviando mensagens sem aval do Schema Registry
      • 7.3 Tipos lógicos no Avro
      • 7.4 Modos de compatibilidade entre schemas de mesmo subject
      • 7.5 A inclusão do preço nos itens de cardápio
      • 7.6 Um desserializador de mensagens customizado - obtendo o Schema ID nas mensagens e a última versão de schema de um subject
      • 7.7 A propriedade USE_LATEST_VERSION e boas práticas associadas
      • 7.8 Resumo
    • 8 O Protobuf como formato de mensagens
      • 8.1 O formato Protobuf
      • 8.2 Notificando os restaurantes do despacho dos entregadores aos destinos: o ms-notificacoes
      • 8.3 Compilação de arquivos .proto usando o utilitário protoc
      • 8.4 O plugin protobuf-maven-plugin e a compilação usando Maven
      • 8.5 O KafkaProtobufSerializer
      • 8.6 Suporte do Avro Schema Merger a arquivos .proto
      • 8.7 KafkaProtobufDeserializer, o KafkaProtobufDeserializerConfig.SPECIFIC_PROTOBUF_VALUE_TYPE e o consumo das notificações pelo ms-restaurantes
      • 8.8 Resumo
    • 9 Integração com o Kafka Connect
      • 9.1 Consulta aos pedidos realizados
      • 9.2 O Kafka Connect
      • 9.3 Envio dos pedidos realizados para o tópico de auditoria usando o Kafka Connect
      • 9.4 Kafka Connect e Schema Registry: uma relação baseada em compatibilidade
      • 9.5 Resumo
    • 10 Conclusão
    • 11 Bibliografia

    Dados do produto

    Número de páginas:
    274
    ISBN:
    978-85-5519-402-3
    Data publicação:
    07/2025
    Fórum de discussões

    Compartilhe!

    Compartilhe no Facebook Compartilhe no Twitter

    *Você terá acesso às futuras atualizações do livro.

    altLogoFooter

    Uma empresa do Grupo Alun

    Logo da Alun

    Links da
    Casa do Código

    • Meus ebooks
    • Sobre a Casa do Código
    • Todos os livros
    • Nossas coleções
    • Quero escrever um livro ou fazer parceria
    • Perguntas Frequentes
    • Política de Privacidade
    • Fale conosco

    Nas redes sociais

    • /CasaDoCodigo
    • @casadocodigo
    • @casadocodigo

    Receba novidades e lançamentos

    Este site aceita Pix, Cartão de Crédito, Débito

    • pagarme
    • paypal

    Grupo Alun

    • Educação em Tecnologia

      • FIAP
      • Casa do Código
      • PM3 - Cursos de Produto
    • Mais Alura

      • Alura Start
      • Alura Língua
      • Alura Para Empresas
      • Alura LATAM
    • Comunidade

      • Tech Guide
      • 7 days of code
      • Hipsters ponto Jobs
    • Podcasts

      • Hipsters ponto Tech
      • Dev sem Fronteiras
      • Layers ponto Tech
      • Like a Boss
      • Scuba Dev