Nest.js モジュラーアーキテクチャの辛いところ
Nest.js
アーキテクチャ
Nest.jsのデフォルトのアーキテクチャは、モジュラーアーキテクチャや3層アーキテクチャなどと呼ばれる 実際に実装してみて、辛かったところをメモ
- userとdatabaseなど、domain的なモジュールとinfrastructure的なモジュールが同階層に並ぶのが違和感
- DDDに慣れてしまっている故の違和感かもしれない
- 実際に迷った具体例として、s3に関する処理を置く場所に迷った
- モジュール毎の依存関係が分かりづらい
- DDDの様に中心円へ向かって依存しているわけではないので、モジュールを数珠つなぎに確認していく必要がある
- マクロサービスを強く意識しているが、実際にマイクロサービスを採用するのは稀
- 実際に実運用させるには、インフラ側の知見が非常に重要になる&オーバースペックになる可能性があるため、不採用になるパターンが多い(体感)
- であるなら、このアーキテクチャじゃなくて良くね?となる
- 逆に、将来マイクロサービス化を考えているならば採用しても良いかもしれない