Sobre el proyecto

Watermill es una biblioteca de Go diseñada para construir aplicaciones dirigidas por eventos de manera eficiente. Abstrae la comunicación de flujos de mensajes detrás de una interfaz de manejo simple, lo que la hace tan fácil de usar como los enrutadores HTTP. La biblioteca admite el suministro de eventos (event sourcing), RPC sobre mensajes, sagas, CQRS y otros patrones dirigidos por eventos. Las características clave incluyen: - Una interfaz de manejo simple: func(*Message) ([]*Message, error) - Soporte universal para arquitectura dirigida por eventos, mensajería, procesamiento de flujos y CQRS - Sistema flexible de middleware y complementos - Diseño resistente con tecnologías probadas y pruebas de estrés Las implementaciones de Pub/Sub compatibles incluyen: - AMQP (RabbitMQ) - AWS SNS/SQS - Bolt - Firestore - Google Cloud Pub/Sub - HTTP - io.Reader/io.Writer - Kafka - NATS Jetstream - Redis Streams - SQL (MySQL/PostgreSQL) - SQLite (Beta) Watermill v1.0.0 está lista para producción con una API pública estable. Todas las implementaciones de Pub/Sub deben pasar una suite de pruebas integral, incluyendo pruebas de estrés (20 ejecuciones paralelas) y detección de condiciones de carrera. La biblioteca incluye puntos de referencia que comparan el rendimiento de mensajes entre diferentes implementaciones de Pub/Sub. El proyecto proporciona ejemplos extensos que cubren el uso básico, la integración pub/sub, escenarios del mundo real (entrega exactamente una vez, webhooks, sincronización de bases de datos, registros de eventos persistentes, eventos transaccionales, eventos enviados por el servidor) y proyectos completos. Un curso práctico en línea cubre conceptos estándar de la industria como entrega al menos una vez, modelos de lectura asíncronos, eventos y comandos, observabilidad, orden de mensajes y sagas.