この記事はScala Advent Calendar 2021の16日目の記事です。 はじめに Akka Clusterを使った分散システムを実現するために、いくつかのAkkaのモジュールを理解する必要がある。 そのうちの一つにPersistence (Event Sourcing) がある。よく Actor を永続化するために使うということを聞くが、あまり使い所がピンと来なかったので、Akkaのドキュメントと参考文献を読みながらメモを書いていく。 Persistence (Event Sourcing) とは 状態を持ったアクターを永続化できるモジュール。 以下の二種の方法で永続化ができる Journal - 更新イベントを1つずつ発生した順番に保存 Snapshot - その時点でのActorの状態を直接保存 状態を持ったアクターのスナップショットも使うことはできるが(リカバリーする際
![AkkaのPersistence (Event Sourcing)の用途について](https://cdn-ak-scissors.b.st-hatena.com/image/square/9aa58e24e60127476b5b46aa72db673e0ab8508b/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fzenn%2Fimage%2Fupload%2Fs--jqG1pQhs--%2Fc_fit%252Cg_north_west%252Cl_text%3Anotosansjp-medium.otf_55%3AAkka%2525E3%252581%2525AEPersistence%252520%252528Event%252520Sourcing%252529%2525E3%252581%2525AE%2525E7%252594%2525A8%2525E9%252580%252594%2525E3%252581%2525AB%2525E3%252581%2525A4%2525E3%252581%252584%2525E3%252581%2525A6%252Cw_1010%252Cx_90%252Cy_100%2Fg_south_west%252Cl_text%3Anotosansjp-medium.otf_37%3Ataketora%252Cx_203%252Cy_121%2Fg_south_west%252Ch_90%252Cl_fetch%3AaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzk5ZmM2OGNhYTQuanBlZw%3D%3D%252Cr_max%252Cw_90%252Cx_87%252Cy_95%2Fv1627283836%2Fdefault%2Fog-base-w1200-v2.png)