Railsでサービスを開発 / 運用をしていると、コードの肥大化に伴うモノリシック化に悩まされることも多いはず。2014年のサービス開始からRailsで進めてきたnoteも今まさにその壁に立ち向かっている最中です。 Railsアプリケーションを分割しようと考えたときに、マイクロサービス化や別言語でのフルリプレイスなどを検討することもあるはずです。 様々な選択肢がある中で、弊社ではPackwerkの導入とRailsエンジン化による分割を進めることにしました。(※ packwerk:Shopifyが作成したgem。依存関係をパッケージによって整理することができる) Railsエンジンを採用した大きな理由としては以下が挙げられます。 すばやく小さく問題を切り分けることを優先 マイクロサービス化はアーキテクチャから考慮する必要があり時間がかかる 将来的なマイクロサービス化の下準備として進めることが
![RailsエンジンとPackwerkによるコード分割を進行中|noteエンジニアチームの技術記事](https://cdn-ak-scissors.b.st-hatena.com/image/square/7e4e5985f93bee1e6e304876d4fc64047a80b019/height=288;version=1;width=512/https%3A%2F%2Fassets.st-note.com%2Fproduction%2Fuploads%2Fimages%2F123123175%2Frectangle_large_type_2_33204bf5b94a6cbfd61b39f3a20b53f3.png%3Ffit%3Dbounds%26quality%3D85%26width%3D1280)