◦ VM のスケジューラによって、プロセスの処理は並行に進められる • プロセス同士はメッセージパッシングでやりとりする(アクターモデル ◦ プロセスはメールボックスに届くメッセージを受信順に一つずつ処理する ▪ これによってプロセスの処理は排他になり、並行処理の悩みが低減される💡 Erlang VM 📨 📨 P 📮 PID: x P 📮 PID: y P 📮 PID: z spawn 関数で プロセスを生成 send 関数で メッセージを投げる receive 関数で メッセージを受け取る
◦ GenServer(gen_server, generic server process ▪ プロセス実装を一般化した behaviour ◦ Supervisor ▪ プロセスを監視、復旧する behaviour ▪ 自身もプロセス ▪ 監視対象の再起動戦略を決めることができる • Erlang OTP ◦ > OTP is set of Erlang libraries and design principles providing middle-ware to develop these systems. ref. https://www.erlang.org/ 👆supervision tree 15m
Phoenix があり、 サーバサイドで使われることが多い ◦ ex. Real time communication at scale with Elixir at Discord ▪ from https://elixir-lang.org/cases.html サーバ data data data data data data data data data data 並行志向 耐障害性 データ変換