見出し画像

リアクティブアーキテクチャを学ぶには

先日、アットウェアさんの社内勉強会で、「常に使えるソフトウェア」を実現するために、障害に強く、高いパフォーマンスとスケーラビリティを設計レベルから考慮した「リアクティブ・アーキテクチャ」の基礎講座を講演させてもらいました。大変興味を持ってもらったようなのでよかったと思います。

Twitterでも興味を持っている人が多いようなので何を情報源に学ぶとよいか簡単にまとめておきます。

何はともあれ、一番のお勧めはLightbend Academyですね。以下の記事で解説しているので参考にしてください。

Akka関連の書籍を学ぶ

リアクティブ・アーキテクチャを考えた勢はLightbendとかAkkaのコミュニティなので、リアクティブアーキテクチャを学ぶ=Akkaを学ぶことなります。書籍を探す際もAkka系の書籍を選ぶとよいです(ちなみに言語はScalaがおすすめですが、Java, Kotlinからでも利用できます)。Akka以外のコミュニティでもリアクティブ・アーキテクチャの概念と取り入れているところはありますが、中途半端に学ぶことになりかねませんので、ある意味本家であるAkkaから学ぶことをお勧めします。

Actor APIの変遷

Akkaは、従来のuntyped、アクターに送信できるメッセージがタイプセーフではないというトレードオフがありましたが、version 2.5.22から新Actor APIとしてAkka Typedのモジュールが追加されタイプセーフになりました。version 2.6.0から安定版となっていて、公式ドキュメントでもAkka Typedがデフォルトになり、従来のuntypedなAPIはClassicという位置づけに変わっています。現状の書籍の実装の解説としてはuntypedのものが中心ですが、概念の把握には影響はありません。

お勧め書籍リスト

ということで、お勧めの書籍としては以下です。

Akka実践バイブルはAkka in Actionの邦訳版です。僕も翻訳レビューに参加しました。概念を把握するのに役立ちます。

洋書であれば以下あたりがお勧めです。

以下もAkkaアプリケーション開発を実践的に学べる書籍。CQRS/ESの実装も解説されています。

リアクティブなデザインパターンについて学ぶための書籍。耐障害性のための Error Kernal pattern や let-it-crash pattern を学べます。Akkaを使ったコードも掲載されています。あと、一部 akka-typedで解説されているページもあります。

サンプルコード

手前味噌ですが、untypedは以下です。ReadModelUpdaterでDynamoDBのScanを使っていてスケーラビリティがありません…。概念を把握する分には不自由しないと思います。

akka-typed前提したものはこちらで開発中です。

ということでご参考までに

この記事が気に入ったらサポートをしてみませんか?