Sobre el proyecto

Sarama es una biblioteca cliente en Go para Apache Kafka, con licencia MIT y mantenida por IBM. Proporciona una implementación integral del protocolo de Kafka para aplicaciones Go. ## Capacidades **Productores** — Envían registros a temas de Kafka con estrategias de particionamiento configurables (aleatorio, round-robin, pegajoso, basado en clave). Admite modos de envío síncronos y asíncronos, agrupación de mensajes y compresión (gzip, snappy, lz4, zstd). **Consumidores** — Leen de temas de Kafka usando grupos de consumidores o suscripciones directas a tema/partición. Admite gestión de offsets manual y automática, reequilibrio de grupos de alto nivel y estrategias personalizadas de asignación de particiones. **Clientes transaccionales** — Proporciona APIs para semántica de exactamente-una vez, incluyendo inicio de transacciones, confirmación y operaciones de cancelación. **Gestión de brokers** — Maneja el descubrimiento de brokers de Kafka, gestión de metadatos y reasignación automática de líderes. ## Recursos adicionales - Implementaciones mock en el subpaquete `mocks` facilitan las pruebas unitarias. - Aplicaciones de ejemplo en el directorio `examples` demuestran patrones de uso comunes. - Herramientas de línea de comandos en el directorio `tools` admiten pruebas, diagnóstico e instrumentación. ## Compatibilidad Sarama admite las dos últimas versiones estables de Kafka y Go, con un período de gracia de dos meses para versiones anteriores. El proyecto sigue el versionado semántico y proporciona garantías de estabilidad de API. La documentación completa de la API y ejemplos están disponibles en pkg.go.dev.