LabHub

ブログ

モダンバックエンドフレームワーク 2025 — NestJS·Fastify·Hono·Elysia·Spring Boot·FastAPI·Go·Axum·tRPC·GraphQL·gRPC 完全比較 (シーズン7 第2回)

한국어English日本語

プロローグ — フレームワークの問いが戻ってきた

「どのバックエンドフレームワーク?」は2015年の問いに感じるが、戻ってきた。理由は実在する。

古顔 (Express, Django, Flask) は今も動く。だが2026年に新規開始するなら、より良いデフォルトがある。


1章. TypeScriptバックエンド

NestJS

Fastify

Hono

Elysia

概要

FrameworkRuntimeコールドスタート型エルゴノミクス生態系
NestJSNodeDI + デコレータ巨大
FastifyNodeJSON Schema
HonoEdge/Node/Bun/Deno非常に速成長中
ElysiaBun非常に速最高

2章. JVM — Spring Boot, Micronaut, Quarkus

Spring Boot

Micronaut / Quarkus

用途


3章. Python — FastAPI, Litestar, Django Ninja

FastAPI

Litestar

Django Ninja

注意


4章. Go — Fiber, Echo, Chi, Gin, net/http

net/httpのシフト (Go 1.22+)

サードパーティ

用途


5章. Rust — Axum, Actix-web, Rocket

Axum

Actix-web

用途


6章. APIスタイル — REST, tRPC, GraphQL, gRPC

REST + OpenAPI

tRPC

GraphQL

gRPC / Connect

クイック選択


7章. バリデーションとスキーマ — Zod, Valibot, ArkType

スタック全体で一つに統一。混ぜると痛い。


8章. ORM / データ層


9章. 認証 — 2025年の景色


10章. 観測性

ルール: トレースはフレームワーク層、ログはサービス層、メトリクスはシステム層。


11章. バックグラウンドジョブ

Temporalは複雑な多段ワークフローでの2025年の第一選択。


12章. デプロイ — 「そのまま動く」ランタイム + フレームワーク組み合わせ


13章. 意思決定ツリー

Q1: エッジ/サーバーレスターゲット?
├─ はい: Hono (エッジ), Elysia (Bun), FastAPI (Lambda), Quarkus (ネイティブ)
└─ いいえ → Q2

Q2: TSモノレポ、FE/BE密結合?
├─ はい: Next.js API / tRPC / Hono
└─ いいえ → Q3

Q3: エンタープライズJava/Kotlin、規制?
├─ はい: Spring Boot (+ 仮想スレッド)
└─ いいえ → Q4

Q4: 高スループット / 低レイテンシ必須?
├─ はい: Go (Fiber/Echo/Chi) or Rust (Axum)
└─ いいえ → Q5

Q5: Pythonデータ/AI隣接?
├─ はい: FastAPI / Litestar
└─ いいえ: NestJS or Fastify

12項目導入チェックリスト

  1. チームの言語/ランタイム強みはマッピング済み?
  2. コールドスタート予算を定義?
  3. フロントエンドとの型共有計画は?
  4. OpenAPIまたはスキーマの真実源は決定?
  5. ORMは規模とマイグレーション考慮で選定?
  6. バックグラウンドジョブランナー選定?
  7. 認証ライブラリ決定 (セルフホスト vs マネージド)?
  8. 観測性スタックを初日から統合?
  9. レート制限/不正防止を層化?
  10. ローカル開発がProdに一致 (Docker/Bun/Nodeパリティ)?
  11. テスト戦略 — ユニット + 統合 + 契約?
  12. デプロイパイプライン自動化、ロールバックテスト済?

よくあるアンチパターン10

  1. 500行サービスに「念のため」NestJS。
  2. 3つのRESTで済むところにGraphQL。
  3. サーバーレスでコールドスタート無視 — 巨大フレームワーク + 重いDI。
  4. 共有スキーマをフロントエンド型から盗む (ドリフト地獄)。
  5. エッジでのスキーマバリデーションなし (全エラーが後で500になる)。
  6. ループ内のORMレイジーロード — N+1が1000+1に。
  7. Lambdaでの長寿命DBコネクション — コネクション爆発。
  8. 認証を一から自作 — ミスが必ず起きる。
  9. OpenAPIなし → クライアントコード生成なし → 手書きfetch。
  10. 「Kubernetesがあるから」でKubernetesデプロイ — 過剰装備が多い。

次回予告

シーズン7 第3回 — 分散データベース 2025: CockroachDB、Spanner、TiDB、Yugabyte、Aurora DSQL、Neon、PlanetScale、Turso、D1。「ベスト」ではなく「選び方」。

— モダンバックエンドフレームワーク編、完。

コメント

まだコメントはありません。

ログインするとコメントできます