データベースを技術選定する際に最低限押さえておきたい観点は以下の三つ。
予算・インフラコストや現場のソフトウェアエンジニアの技術理解度などの制約条件を加味しながら、基本的には上記三つのトレードオフのバランスをどうとっていくかがポイントになる。
大抵のケースで、まずは Maintainability を最優先にすると良い。一番重要なのは「変更できること」「移行できること」「撤退できること」。そして、要件の許す限り最低限のレベルでの Reliability / Scalability を担保するデータベースおよび設計を選定する。
そもそもサービスが成長するかどうかはわからない。来るかどうかわからない将来に備えて必要以上に Reliability や Scalability を加味する必要はない。選定したデータベースが、必要に応じて進化させていくことができれば、将来必要になってもそれら Reliability / Scalability を向上させる手掛かりになる。
具体的には、ツールがある程度枯れており、ソースコードが公開されていれば upstream に貢献したり fork したりすることで改善していけることができる。そこで必要とされるプログラミング言語に現場のソフトウェアエンジニアが習熟していればなおよい。オペレーションコストも低ければ、アーキテクチャ改善やツール改善にエンジニアリングリソースを投下することもできる。その他には、以下の観点を考慮していくと良い。
上記三つの観点は、私が好きな DDIA 本にも書いてあること。かなり簡約したが、まず初めの第一歩として押さえておきたい最低限のポイントを紹介した。