Sobre o projeto
go-kafka é um módulo Go publicado em github.com/faustbrian/go-kafka sob a licença MIT. Ele fornece blocos de construção limitados e explícitos de produtor, consumidor, replay, inspeção e transações do Apache Kafka para serviços Go, e é implementado como um wrapper em torno do franz-go. A intenção de design declarada é evitar ocultar resultados de entrega, propriedade de ciclo de vida, política de tópico ou configuração de segurança da aplicação chamadora.
O README é explícito sobre o escopo e as limitações. O pacote fornece blocos de construção de entrega "at-least-once". Ele não torna as gravações em banco de dados e a publicação no Kafka atômicas, não torna os efeitos colaterais do consumidor "exactly once" e não detém a configuração do tópico ou do broker. As aplicações permanecem responsáveis por reconciliar resultados ambíguos de publicação e commit, os quais a biblioteca mantém distinguíveis.
A instalação é feita através de um único fetch de módulo, go get github.com/faustbrian/go-kafka. No guia de início rápido documentado, um ProducerConfig é validado durante o bootstrap sem alocar um cliente ou discar para brokers. O exemplo define uma lista de brokers, um identificador de cliente e uma lista de tópicos permitidos, chama Validate, então constrói um produtor com NewProducer e defere o Close. A publicação recebe um contexto e uma mensagem contendo tópico, chave e bytes de valor. O README observa que o acesso ao tópico é restringido através de allowlists copiadas no construtor, portanto, os produtores podem endereçar apenas tópicos pré-aprovados.
A seção de garantias lista vários comportamentos concretos. Os produtores mantêm a idempotência do franz-go, exigem confirmação de todas as réplicas sincronizadas (in-sync replicas) e limitam retentativas, buffering, admissão e entrega. Os consumidores expõem comportamentos explícitos de confirmação (acknowledgement), retentativa, dead-letter, rebalanceamento e desligamento. TLS 1.2 ou posterior é o padrão, enquanto a autenticação e a compatibilidade do broker são descritas como decisões explícitas de implantação. Módulos opcionais para integração de serviços, OpenTelemetry e Amazon MSK IAM são listados, cada um com ciclo de vida pertencente ao chamador, em vez de ser gerenciado pela biblioteca.
A documentação está organizada em um diretório docs, com um índice, uma matriz de compatibilidade, um registro de decisões de especificação, um documento de garantias de entrega, um guia de operações e uma referência detalhada cobrindo os contratos completos de produtor, consumidor, replay, inspeção e ciclo de vida. O README também aponta para um índice de ecossistema Golib versionado e sua família de integração e movimentação de dados para comparar este pacote com bibliotecas companheiras e adaptadores opcionais.
Para trabalho de desenvolvimento e release, o README instrui a execução de golib check contra o diretório do módulo afetado, e make check para alterações em todo o repositório e releases. Mudanças de backend e de serviços gerenciados devem passar pelos portões de integração e interoperabilidade aplicáveis. Badges de status de integração contínua e CodeQL, um badge de referência Go, badge de release e a versão do Go são exibidos no topo do README, com o badge do Go indicando a versão 1.26.6.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.