このプロジェクトについて
Watermillは、イベント駆動アプリケーションを効率的に構築するために設計されたGoライブラリです。メッセージストリーム通信をシンプルなハンドラーインターフェースの背後に抽象化し、HTTPルーターと同じくらい簡単に使用できます。このライブラリは、イベントソーシング、メッセージを介したRPC、サガ、CQRS、その他のイベント駆動パターンをサポートしています。
主な機能は以下の通りです:
- シンプルなハンドラーインターフェース:func(*Message) ([]*Message, error)
- イベント駆動アーキテクチャ、メッセージング、ストリーム処理、CQRSのためのユニバーサルサポート
- 柔軟なミドルウェアとプラグインシステム
- 実証済みのテクノロジーとストレステストによる堅牢な設計
サポートされているPub/Sub実装は以下の通りです:
- 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 (ベータ版)
Watermill v1.0.0は、安定したパブリックAPIを備え、本番環境に対応しています。すべてのPub/Sub実装は、ストレステスト(20倍の並列実行)やレースコンディション検出を含む包括的なテストスイートに合格する必要があります。このライブラリには、さまざまなPub/Sub実装間でのメッセージスループットを比較するベンチマークが含まれています。
このプロジェクトは、基本的な使用法、pub/sub統合、実際のシナリオ(正確に一度の配信、ウェブフック、データベース同期、永続的なイベントログ、トランザクションイベント、サーバー送信イベント)、および完全なプロジェクトをカバーする広範な例を提供しています。オンラインの実践的なトレーニングコースでは、少なくとも一度の配信、非同期リードモデル、イベントとコマンド、可観測性、メッセージ順序、サガなどの業界標準の概念をカバーしています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.