Sobre el proyecto

go-kafka es un módulo de Go publicado en github.com/faustbrian/go-kafka bajo la licencia MIT. Proporciona bloques de construcción acotados y explícitos para productores, consumidores, reproducciones, inspecciones y transacciones de Apache Kafka para servicios Go, implementado como un wrapper alrededor de franz-go. La intención de diseño es evitar ocultar los resultados de entrega, la propiedad del ciclo de vida, las políticas de tema o la configuración de seguridad a la aplicación llamante. El README es explícito sobre el alcance y los límites. El paquete proporciona bloques de construcción al menos una vez. No hace que las escrituras en base de datos y la publicación en Kafka sean atómicas, no hace que los efectos secundarios del consumidor sean exactamente una vez, y no posee la configuración de temas o brokers. Las aplicaciones siguen siendo responsables de reconciliar resultados ambiguos de publicación y compromiso, que la biblioteca mantiene distinguibles. La instalación es una única obtención de módulo con go get github.com/faustbrian/go-kafka. En el inicio rápido documentado, un ProducerConfig se valida durante el arranque sin asignar un cliente ni conectar a brokers. La muestra configura una lista de brokers, un identificador de cliente y una lista de temas permitidos, llama a Validate, luego construye un productor con NewProducer y ejecuta defer Close. La publicación toma un contexto y un mensaje que contiene bytes de tema, clave y valor. El README indica que el acceso a temas está restringido mediante listas blancas copiadas en el constructor, por lo que los productores solo pueden dirigirse a temas preaprobados. La sección de garantías enumera varios comportamientos concretos. Los productores conservan la idempotencia de franz-go, requieren reconocimiento de todas las réplicas sincronizadas y limitan reintentos, buffering, admisión y entrega. Los consumidores exponen comportamiento explícito de reconocimiento, reintento, carta muerta, rebalanceo y apagado. TLS 1.2 o posterior es el predeterminado, mientras que la autenticación y la compatibilidad de brokers se describen como decisiones explícitas de implementación. Se enumeran módulos opcionales para integración de servicios, OpenTelemetry e Amazon MSK IAM, cada uno con ciclo de vida gestionado por el usuario en lugar de administrado por la biblioteca. La documentación está organizada en un directorio docs, con un índice, una matriz de compatibilidad, un registro de decisiones de especificación, un documento de garantías de entrega, una guía de operaciones y una referencia detallada que cubre los contratos completos de productor, consumidor, reproducción, inspección y ciclo de vida. El README también señala un índice de ecosistema Golib versionado y su familia de integración y movimiento de datos para comparar este paquete con bibliotecas companion y adaptadores opcionales. Para el trabajo de desarrollo y lanzamiento, el README instruye ejecutar golib check contra el directorio del módulo afectado, y make check para cambios y lanzamientos a nivel de repositorio. Se espera que los cambios de backend y servicios administrados pasen las validaciones de integración e interoperabilidad correspondientes. En la parte superior del README se muestran insignias de integración continua y CodeQL, insignia de referencia de Go, insignia de lanzamiento y la versión de Go, indicando la versión 1.26.6.