サービスに入会できる、カードを発行できる、決済できる、支払いできる ◦ 開発メンバーにとって決済サービスは初めてのチャレンジであり、万が一大きなトラブルが 発生した場合に備えてプロダクトの機能を最小限に絞った ◦ テストで担保する品質面に濃淡を付けた (決済ロジックの品質を最優先) ◦ どのような決済パターンがあるのか、明細の内容も含めて実際のデータを見てみたかった • DB設計は将来のプロダクト間連携を見据える ◦ 決済サービスは24時間稼働し続けることが期待されるため、DBスキーマ変更やデータマイ グレーションのためにメンテナンスに入れることはできる限り避けたかった ◦ バクラク申請やバクラク請求書受取など、既存プロダクトにカードのドメイン知識が加わるた め、最初からどのようにデータを連携させるか、カラム名や型といった細部まで考え抜いた 設計にした ▪ 異なるドメイン上のデータ(カラム)に同じ名前が使われていないか ▪ 金額を示すカラムの型に不整合がないか (int、uintが混在していない、など) ▪ プロダクトをまたぐデータの NOT NULL 指定は一致しているか