Axon の CQRS フレームワークの最新バージョンでは,MongoDB をバックストアとして使用する MongoEventStore がサポートされている。さらにAPIがシンプルなものになり,パフォーマンスも向上している。先日リリースされたこの バージョン2.0 は,イベントオブジェクトがPOJOベースになると同時に,メッセージやペイロード,メタデータを定義するアノテーションも備えている。その他の新機能は次のようなものだ。
- 高性能なコマンドバス。ロックレスアルゴリズムを使用して並列的にコマンドを処理することにより,単位時間あたり4倍以上のコマンドを処理できるようになった。
- イベントのシリアライズ実行が1度だけであること,イベントが実際に使用される場合にのみデシリアライズされることを保証するロジック。
- 多数のイベントを対象とするリプレイの大幅な高速化。
- 複数のマシンへの水平スケーリングと各マシンの負荷調整が可能な分散コマンドバス。
- イベントのアップキャストと 逆多重化 のサポート。新たなイベントを実装した後に,以前のイベントを複数の新イベントに変換する処理などが可能になる。
- 分散イベントに AMQP (Advanced Message Queuing Protocol) を使用可能。
リリースに合わせて,Axonベースのシンプルなシステムを構築するためのステップが クイックスタートガイド として公開された。また,フレームワークの変更を反映して リファレンスガイド もアップデートされている。
このフレームワークでは,CQRS (Command Query Responsibility Segregation) と イベントソーシング という,2つのアーキテクチャ・パターンをベースとしたシステムのビルディングブロックを提供している。いずれも今,注目を集めつつあるパターンだ。DDD reference book の著者であるEric Evans氏らの運営するDDD(Domain-Driven Design)コミュニティのWebサイトには,その重要性が特に 指摘されている。
"CQRSとイベントソーシングの2つは,非常に密接な関連を持ったDDDへのアーキテクチャ的アプローチです。DDDに関しては,ここ数年で一番ホットな話題でしょう。"
Axon Framework は Allard Buijze 氏が設立したオープンソース製品である。Apache License バージョン2.0 によってライセンスされ,有償サポートも選択できる。
約200名のメンバを持つAxon ユーザ フォーラム には,これまでに約300のトピックがある。 実務上の経験 に関する議論からは,フレームワークに対して肯定的,否定的の両方のフィードバックのあることが確認できる。