このプロジェクトについて

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統合、実際のシナリオ(正確に一度の配信、ウェブフック、データベース同期、永続的なイベントログ、トランザクションイベント、サーバー送信イベント)、および完全なプロジェクトをカバーする広範な例を提供しています。オンラインの実践的なトレーニングコースでは、少なくとも一度の配信、非同期リードモデル、イベントとコマンド、可観測性、メッセージ順序、サガなどの業界標準の概念をカバーしています。