- Case study production thực tế vừa được InfoQ công bố: migration từ Apollo Federation sang tRPC trong 6 tuần.
- P95 latency 85ms → 28ms, client bundle 142KB → 28KB gzipped, bugs/tháng giảm 89%, CI/CD nhanh hơn 40%.
- Số liệu từ Datadog APM, scale 2.4M requests/ngày với 99.97% uptime.
TL;DR
InfoQ vừa đăng case study migration production từ GraphQL Federation (Apollo) sang tRPC trên 12 microservices, xử lý 2.4 triệu requests/ngày với 99.97% uptime. Kết quả đo bằng Datadog APM: P95 latency giảm từ 85ms xuống 28ms (−67%), client bundle từ 142KB xuống 28KB gzipped (−80%), bugs/tháng giảm 89%, CI/CD pipeline nhanh hơn 40%. Migration mất 6 tuần engineering, team claim ROI gấp 10 lần nhờ tiết kiệm thời gian fix bug và ship feature.
Điều gì vừa được công bố
Bài article "Building Production-Ready tRPC APIs: The TypeScript Alternative to Apollo Federation" trên InfoQ (20/04/2026, tác giả Dinesh Kumar Elumalai) là một trong những case study chi tiết nhất về tRPC ở production scale. Thay vì benchmark tổng hợp, bài viết đưa số liệu Datadog APM thực từ một hệ thống đã migrate xong và chạy ổn định.
Điểm đáng chú ý là cả hai phía — GraphQL Federation và tRPC — đều cùng chạy song song 3 tuần trong giai đoạn chuyển đổi theo pattern strangler fig: migrate read-only endpoints trước, mutations cuối cùng. Nhờ vậy các con số so sánh đo trên đúng workload thật, không phải synthetic benchmark.
Vì sao quan trọng
Trong 3 năm qua GraphQL Federation gần như là mặc định cho microservices với multi-service schema. Nhưng với các team TypeScript full-stack, phần lớn giá trị của GraphQL (schema introspection, multiple clients, type negotiation) không được dùng tới — chỉ còn lại chi phí codegen, schema sync, và federation gateway overhead. tRPC tận dụng điều này bằng cách chia sẻ thẳng type TypeScript qua import, bỏ hoàn toàn bước codegen.
Với serverless/edge deployment, con số cold start 180ms → 45ms là khác biệt giữa "user cảm nhận được lag" và "user không thấy gì". Đây là lý do tRPC đang nổi lên mạnh ở stack Next.js App Router + Vercel Functions.
Số liệu kỹ thuật
| Metric | Apollo Federation | tRPC | Cải thiện |
|---|---|---|---|
| P95 latency | 85ms | 28ms | −67% |
| Avg response time | 38ms | 12ms | −68% |
| Cold start | 180ms | 45ms | −75% |
| Client bundle (gzipped) | 142KB | 28KB | −80% |
| Production bugs/tháng | 88 | 7 | −89% |
| CI/CD pipeline | 8.4 phút | 5.1 phút | −40% |
Scale vận hành: 2.4M requests/ngày qua 12 microservices, uptime 99.97%, cache hit rate 87% trên product data và 92% trên user preferences. Team báo cáo velocity ship feature tăng 40% — chủ yếu do không còn phải debug schema mismatch giữa services.
tRPC vs GraphQL Federation — điểm khác
Các pain point của Federation mà case study cited:
- Schema synchronization — codegen trở thành single point of failure; khi subgraph schema đổi mà client chưa regen, app crash runtime.
- Mobile client type staleness — types được generate tại build time, không update real-time.
- Federation gateway overhead — thêm một hop mạng, thêm parsing, thêm latency.
- CI/CD failures từ schema mismatch giữa các services.
Lợi thế tRPC trong môi trường all-TypeScript:
- Type được import trực tiếp từ server code — không codegen, không drift.
- Bundle nhỏ: không cần Apollo Client (~33KB) + runtime schema; tRPC client ~5KB.
- Function-call overhead ~0.1ms so với GraphQL resolver tree 3–10ms.
Use cases phù hợp
Stack trong case study: pnpm monorepo, Next.js 14 App Router, React Query cho client-side batching, Zod cho input validation, PostgreSQL + MongoDB + Redis cho data layer, Datadog APM cho monitoring. Đây là "golden path" cho tRPC: TypeScript từ database client tới UI, serverless deployment, team nhỏ-vừa muốn ship nhanh.
Các scenario khác mà tRPC shine:
- SaaS B2B với web-first clients (không có mobile native).
- Internal dashboards/admin tools.
- Startup MVP cần iterate nhanh, không muốn maintain schema layer.
Giới hạn & khi KHÔNG nên dùng
Tác giả thẳng thắn chỉ ra tRPC không phải silver bullet. KHÔNG migrate khi:
- API public cho bên thứ ba dùng — cần GraphQL hoặc REST có schema chuẩn.
- Native mobile Swift/Kotlin — không có TypeScript runtime nên lợi thế type sharing biến mất.
- Backend polyglot (Go, Python, Rust mix với Node) — tRPC chỉ work khi cả hai đầu là TypeScript.
- GraphQL đang chạy ngon — đừng migrate chỉ vì hype. Cost 6 tuần engineering không nhỏ.
tRPC bản thân miễn phí (MIT license), nhưng chi phí thực là thời gian migration và risk trong giai đoạn chạy song song.
Tiếp theo là gì
Trend 2026 không phải "one API to rule them all" mà là right tool per boundary: tRPC cho TS internal, GraphQL Federation cho polyglot/public, REST cho integration bên ngoài, gRPC cho service-to-service high-throughput. Case study này là data point mạnh cho team đang cân nhắc giảm phức tạp ở internal API layer — nhưng số liệu 67% latency giảm và 80% bundle nhỏ hơn không tự động apply cho mọi stack. Đo trên chính workload của bạn trước khi quyết.
Nguồn: InfoQ — Building Production-Ready tRPC APIs, tRPC documentation, Echobind — Why we ditched GraphQL for tRPC.