Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
RPC導入_失敗の理由
Search
Kaito.K
March 22, 2026
380
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
RPC導入_失敗の理由
Kaito.K
March 22, 2026
More Decks by Kaito.K
See All by Kaito.K
-AIが認証し、AIが認証を書く- AI Agent 時代の認証ライブラリ Better Authを理解する
sc30gsw
6
1.5k
Generative UI に JSONは最適か? Open UIという選択肢
sc30gsw
0
32
Featured
See All Featured
エンジニアに許された特別な時間の終わり
watany
109
250k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
530
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
830
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
540
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
450
YesSQL, Process and Tooling at Scale
rocio
174
15k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
360
Transcript
RPC導入で失敗する たった1つの理由 2026/4/23 柿 海斗
⾃⼰紹介 ・柿 海斗(@cu30rry_) ・ENECHANGE株式会社 ・Webアプリケーションエンジニア ・業務: TypeScript, React, Next.js, TanStack
Start ・個人: TanStack Start, Hono, ElysiaJS, ReactNative Expo
アジェンダ
None
Satisfaction(使った⼈の満⾜度) Interest(使ってみたいか)
結論
None
None
None
具体例① 仕様把握
具体例② ドキュメント作成が負荷
技術選定とDX(開発体験)の関係性 適切な技術選定は単なるツール選択でなく、開発プロセス全体を改善する意思決定です
RPCにおける技術選定で何を意識すべきか RPCの課題を意識した技術選定をしましょう!
ユースケースとフレームワーク ‧✅ OpenAPI⽣成が必要: ElysiaJS or oRPC ‧✅ 軽量でシンプルに始めたい: Hono ‧✅
学習コストを抑えたい: Hono ‧✅ Next.jsと使⽤したい: oRPC ‧✅ その他FW / AI SDKなどと連携したい: ElysiaJS ‧✅ パフォーマンス重視: ElysiaJS
重要項⽬による⽐較
tRPC ✅ Pros ・既存知見・採用事例が豊富 ⚠ Cons ・OpenAPI生成に追加の依存関係が必要( trpc-to-openapi or oRPC)
・HTML設定など手書きする必要がある ・trpc-to-openapiに関してはサポートされている SchemaがZodのみ
tRPCの実装① ・HTML設定の記述が必要
tRPCの実装② ・procedureにopenAPIのmetaタグ 記述などを全てのrouteに対して記述 するため実装コストが高い
oRPC ✅ Pros ・OpenAPIをファーストサポート ・Next.jsとの相性が特に良い( Server Actionsのサポートなどもある) ・Date・File・Blob・URLなどNative Typeをサポート ・その他Lazy
Routerによるコールドスタート対策など機能が豊富 ⚠ Cons ・情報量・採用事例が少なめ
oRPCの実装① ・OpenAPIReferencePluginで ドキュメントの設定を集約 ・docsProvider optionで SwaggerUIでの生成も可能
oRPCの実装② ・全てをosに集約できる ・エラー定義だけでなく Middlewareの定 義なども追加可能
oRPCの実装③ ・actionable modifierを追加すれば Server Actionsも定義可能 ・useServerActionsはReactの useActionStateの上位互換
Hono ✅ Pros ・Web標準で軽量かつシンプル ・Hono CLIがあり、CLI型 Agentとの親和性が高い ・JS界で最速の Router RegExpRouterを搭載
・2025年10月には更に軽量で速い PreparedRegExpRouterが発表された ⚠ Cons ・OpenAPIが標準サポートでなく、実装時の記述量・依存関係が増える
Honoの実装① ・追加の依存関係にhono-openapi や@scalar/hono-api-referenceが 必要 ・SchemaにZod以外を使用する場 合は、@hono/standard-validator が必要
Honoの実装② ・describeRouteにOpenAPIの定義を表現する必要がある (openapi.ymlをコードで表現する必要がある) ・特にresponseの部分は、StatusCodeごとに定義が必要 (1機能ならいいが、これが 10・20と増えると かなりの記述量になる)
ElysiaJS ✅ Pros ・Zero-configのOpenAPI機能 ・圧倒的なパフォーマンスで Go・Rustに匹敵する (Expressの約21倍、Honoの約2.5倍) ・公式やコミュニティからの Pluginが豊富で認証・監視など機能を後付できる ⚠
Cons ・チームによっては学習コストが激増する
ElysiaJSの実装① ・3通りのOpenAPI生成 ① ランタイムスキーマの活用 ② 指定Routeの型推論 ③ ①・②を共存 ・②の場合、 fromTypesのみ指定すれば、
Schema定義不要で OpenAPI生成が可能 ・③の場合、ランタイムスキーマが優先される ・Schemaなど定義が fixするまでは②を採用し、 fix後に共存させるなど、柔軟な開発方針を取れ る
ElysiaJSの実装② 型推論を使⽤する場合 ・最低限のOpenAPIのdetail情報のみで定義す るだけで良い ・requestやresponseの型は自動推論される
ElysiaJSの実装③ ランタイムスキーマを活⽤する場合 ・request(params・query)やresponseの 型定義が必要 ・しかし、Honoのように各StatusCodeで openapi.ymlのような記述をしなくてよく、 responseの型のみ記述するだけでよい
個⼈的な推しはElysiaJS ‧✅ 唯⼀のBunネイティブフレームワーク ‧✅ パフォーマンスはHonoより良く、GoやRustに匹敵する ‧✅ 最も簡単にOpenAPI連携ができる ‧✅ マルチランタイムサポート(Node‧Bun‧Edge‧etc) ‧✅
公式‧コミュニティのPluginが豊富 ‧✅ イベントベースのMiddlewareで細かい制御ができる (HonoやExpressはキューベース) ‧✅ Elysia 2で初期化‧メモリなどがより速く‧軽量となることが期待でき る https://x.com/saltyAom/status/1991564346535948630 https://x.com/saltyAom/status/2040963262096031913
まとめ DX(開発体験)を設計対象にしていない技術選定は、 将来的に失敗する可能性を⾼めます 「コードを書くスピード‧効率」だけでなく、 「仕様の共有しやすさ」「保守‧運⽤のしやすさ」を含めた ライフサイクル全体で最適なツールを選びましょう!
良かったら記事も読んでみてください! https://zenn.dev/sc30gsw/articles/6be1b73d3db81b
https://zenn.dev/sc30gsw/articles/1c13f3f44b40e5
詳細はエンジニア採用サイトもご覧ください! “エネチェンジ エンジニア” で検索🔍 エンジニアを積極採用しています! エンジニア採用サイト カジュアル面談申込 エネルギーの未来をつくる CHANGING ENERGY
FOR A BETTER WORLD
付録 tRPC‧oRPC‧Hono‧ElysiaJS ⽐較ソースコード https://github.com/sc30gsw/tanstack-rpc-comparison tRPC‧oRPC‧Hono‧ElysiaJS ⽐較アプリ https://tanstack-rpc-comparison.vercel.app/