这个项目能做什么

Watermill 是一个用于高效构建事件驱动应用的 Go 库。它将消息流通信抽象在简单的处理器接口后面,使其像 HTTP 路由器一样易于使用。该库支持事件溯源、基于消息的 RPC、Saga、CQRS 以及其他事件驱动模式。 主要特性包括: - 简单的处理器接口:func(*Message) ([]*Message, error) - 对事件驱动架构、消息传递、流处理和 CQRS 的通用支持 - 灵活的中间件和插件系统 - 经过验证的技术和压力测试带来的弹性设计 支持的发布/订阅实现包括: - 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 已可用于生产环境,并具有稳定的公共 API。所有发布/订阅实现必须通过全面的测试套件,包括压力测试(20 倍并行运行)和竞态条件检测。该库包含跨不同发布/订阅实现的消息吞吐量基准测试。 该项目提供了大量示例,涵盖基本用法、发布/订阅集成、真实场景(精确一次交付、Webhook、数据库同步、持久事件日志、事务事件、服务器发送事件)以及完整项目。在线实践培训课程涵盖行业标准概念,如至少一次交付、异步读取模型、事件与命令、可观测性、消息排序和 Saga。