バックエンド(Backend)
バックエンドは、利用者の直接操作から隠れた場所で、業務ルール、データ、認証、外部連携、非同期処理を実行し、フロントエンドや他のクライアントへ契約された結果を返すソフトウェアの部分です。サーバーを置くこと自体が目的ではなく、データと責務の境界を安全に運用することが目的です。
設計の中心
- APIやメッセージの契約、入力検証、エラーの意味、互換性、廃止方針を定める。
- 業務ルールをHTTPやデータベースの都合から分離し、状態遷移と不変条件を明示する。
- データの所有者、整合性、トランザクション境界、バックアップ、削除、個人情報の扱いを決める。
- タイムアウト、再試行、冪等性、重複、順序、部分失敗を設計する。
- ログ、メトリクス、トレース、監査証跡を、利用者影響と調査手順に結びつける。
構成を比較する
単一プロセス、モジュール化されたモノリス、マイクロサービス、イベント駆動、サーバーレスは、異なる制約への回答です。分割すると独立性が得られる一方、ネットワーク、デプロイ、監視、権限、データ整合性のコストが増えます。組織の境界や流行だけで分割せず、変更頻度と障害の封じ込めから判断します。
検証
契約テスト、ユニット・統合テスト、データ移行リハーサル、負荷試験、セキュリティテスト、障害注入を組み合わせます。正常系のレスポンスだけを確認せず、重複要求、期限切れ、部分失敗、再実行、権限不足、データ不整合をテストします。