「ライトニングトーク」
最後のキーノートの前に、5分間の発表(ライトニングトーク)と、ライトニングトーク特別枠として15分間の発表が行われました。
- 「Why did we decide to start using Elixir?」 by ma2ge
- 「「Surge」 - Amazon DynamoDB for Elixir」 by hirocaster
- 「初心者のElixir(仮) 」 by ovrmrv
- 「社内ツールをElixirで作った話」 by isyumi_net
- 「ElixirでHubotを倒す」 by ne_sachirou
- 「APIサーバーとしてのCowboy」 by hayabusa333
- 「Elixir client from OpenAPI(Swagger) definition」 by niku_name
- 「Erlang and Elixir Factory SF Bay 2017 参加報告」 by jj1bdx
「なぜErlang/OTPを使いつづけるのか」
株式会社時雨堂のVoluntasさんによる「なぜErlang/OTPを使いつづけるのか」という発表です。 Voluntasさんは10年程Erlang/OTPを商用利用され、主に認証、課金、暗号などを使うコードを書いているそうでした。
Erlang/OTPは公開されている事例が少ないのですが、WatsAppやLINEやRiot、またドイツの公共無線LANなど世界中で利用されているそうです。Voluntasさんは、世界のほとんどの問題は例えばGolangで書いてもかまわないだろうと考えられていますが、自身が対象としているミドルウェア開発の領域ではErlang/OTPの「落ちにくい」という性質が欠かせず、経験上数年単位で放っておいても落ちないといいます。
他にも、適当に書いても動くのでプロトタイピングしやすく、設計の見通しが立たないなかでもプロトタイピングしながら完成へと近付けていきやすい、またその状態でも動かすと複数コアでスケールさせやすい、例えばARMサーバー96コアで8000%という数字が出たということ、後付けで型チェックできるツール、ビルドツール、パッケージングツールなどのツールの充実などを利点に述べられていました。
次に、Erlangの特徴である軽量プロセス、特にそのコントロールについてお話いただきました。軽量プロセスでは基本的にそれぞれのプロセスが独立しているため、プロセスを落とすことは容易にでき、またプロセス相互の結びつきをlinkやmonitorで表すことで、あるプロセスがクラッシュしたときにそれに関係するプロセスがどのように動いてほしいかという制御もやりやすいとのことでした。ただしプロセスをきれいに落とす設計というのは難しく、また軽量プロセスの根幹をなすメッセージキューイングも万能ではなく、メッセージ処理の速度よりメッセージ追加の速度が高いと、キューに貯まっていくメッセージが増えつづけて破綻するので、シャーディングなどのテクニックを必要とするそうです。
最後に、次期メジャーバージョンアップであるOTP20が2017年6月21日にリリースされるので、その内容、またその後のOTPチームの目標などについて語られ、「こうしたErlang/OTPの上でElixirが動作しているんだなという感触を持って帰っていただければ」とまとめられました。
