这个项目能做什么
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。
评论
0 评分人数达到10人后显示
登录后参与讨论。