シードラウンドのスタートアップでバックエンドを担当してます。CTOがマイクロサービス化を強く推しているんですが、まだ機能も少ないしユーザーも少ない段階で、これは早すぎではと感じてます。 このフェーズでmicroservice化した経験のある方、後悔ポイント・やってよかったポイントを聞きたいです。
早すぎ問題、私も何度も見ました。シードフェーズで分割すると、副作用として開発速度が確実に落ちます。 - サービス間通信のオーバーヘッド(認証・キャッシュ・トレーシング) - データ整合性を取り直すコスト - ローカル開発環境が一気に重くなる 「将来の拡張性」のために今を犠牲にするのは、今のフェーズで合うやり方ではないことが多いです。**モジュラーモノリス**で論理境界だけ綺麗に切っておけば、後で必要箇所だけ切り出すのは可能。私がCTOなら、シリーズB以降で組織が分割されないと意思決定の根拠にならない、と説明します。 CTOの説得材料が必要なら「論理境界 → 物理分割は組織が必要としてから」で擦り合わせるのがおすすめです。
自分は逆方向の選択をして失敗した経験があるので、参考までに。安定を取った結果、興味の方向と離れて、3年後にしんどくなりました。判断基準に「3年後の自分が何やってたら満足か」を入れるのおすすめ。
補足ですが、似たような構成を別チームで運用したとき、運用フェーズで一番効いたのは「ロギング・モニタリングの初期投資」でした。技術選定そのものより、観測性を後から整えるコストの方が痛いです。
定番の答えで恐縮ですが、ZennとQiitaの最新記事をまず1〜2本読んで、自分の文脈と照らすのがおすすめです。技術の最新動向は半年で変わります。