« ^ »
所要時間: 約 2分

自己完結型のマイクロサービスとマイクロフロントエンドの構築についてちょっとだけ考えていた。いわゆるSCS(Self-Contained System)と呼ばれるものなのだが、敬遠されることも多いようだ。主な特徴として、次のようなものだ。

  • UIを共有しない自律的なWebアプリケーション
  • 単独のチームがアプリケーションを所有し開発及び運用する
  • できる限り非同期通信を使う
  • ビジネスコードを共有しない

https://scs-architecture.org/

全ての機能を、拡張機能として提供する方法はあるのではないかなと考えた。サービス自体はプラットフォームを開発する。アプリケーションはそのプラットフォーム上で動作する拡張として開発する。拡張を導入するかどうかはユーザーが選択する。プリセットは提供してもよい。こんな感じだろうか。大規模なシステムは既にこのような実装を進めているようにも思う。ただ、これはよく考えると大規模になってから工事するのは大変だと思う。ローンチしたら、このプラットフォームとアプリケーションの区分を明確にしていくような作業にとりかかったほうが良いかもしれない。大きく育ってからではおそらく引き剥がせない。

日本には「三つ子の魂百まで」という諺がある。幼少の頃に培われた特徴は死ぬまで変わらないという意味だ。逆にいうと幼少の頃であれば手が打てる。これは人に限った話ではなくてソフトウェアも同じだと思う。ローンチしてから3才になる前に手を打ったほうがよいかもしれない。ローンチ直後からそれを行う余力があるかどうかは結構疑問だが。よくある状況としてはローンチ後はトラブル対応とバグフィックスに追われるという状況だろう。これらを上手く同時に進めることができるのか、そんな体制を作れるものなのか、わからない。今日はこれ以上は時間がないためここで考えるのを止めた。時間ができたらこの続きを考えてみたい。