Note 書いている本人も始めたばっかりなので、もし間違っている点などがあったらお手柔らかにマサカリをお願いします。

Elixirとは

ElixirはErlang VM上で動作する関数型スクリプト言語です。 Erlang VM上で動作する特性上、以下のような特徴があります。

  • ホットスワップを用いた無停止で稼働するシステムの構築
  • スーパーバイザーを用いたシンプルなエラーハンドリング(Let it crash)
  • すべてがプロセスで管理されているため、理論上システムが落ちない
  • 複数サーバーにまたがる分散処理をバックエンドを意識せずに記述すること
  • 並列処理を生かした高速な処理の実現
  • IoTからWebアプリケーションまで幅広いサーバーアプリケーションの記述
  • デフォルトでETSと呼ばれるオブジェクトストレージとMnesiaというデータベース(もちろんこれも分散処理が可能)が付いてくる

また、Elixirで開発されているPhoenixというフレームワークを使うことで

  • 逐一的な処理を記述するだけで並列処理に最適化されたサーバーの構築
  • ホットスワップを用いた無停止デプロイ(ホットデプロイ)が可能
  • ノード単位での分散処理を活用できる
  • JavaScriptを用いずリアルタイムなアプリケーションを開発

個人的にはElixirを活用することでFrea Searchのインフラを改善することが出来るのではないかと期待しているので引き続き調査と開発を進めていきたい。

またこのwikiにも得られた成果などを書いていきたい。