Elixirのホットコードリローディングによるモノリシックアプリケーションのモジュール化
2025-07-12
クライアントごとに1インスタンスをデプロイするElixirベースのモノリシックアプリケーションであるAlzoは、クライアント固有の機能のためにElixirとErlang VMのホットコードローディング機能を活用しています。これにより、マイクロサービスによるカスケード障害や複雑なテストを回避できます。クライアント固有のLiveViewアプリケーションは`/alzo/lib/clients/apps`にあり、起動時に動的にロードされます。ビルド時にはクライアントコードが削除されるため、メインアプリケーションがランタイムアプリケーションに依存することがなくなります。ホットコードアップグレードは簡素化のために回避されます。このアプローチは、効率的な開発、保守性、スケーラビリティ、および動的アプリケーションからメインコードベースに共通機能を簡単にリファクタリングする機能を提供します。