prisma blog
TL;DR
新規開発
複数のサービスで開発
content サービスに Node.js + Prisma
採用理由と、これまでの経過
序段: 新規開発してるよ
アプリ, web, backend
graphql つかってるよ
https://quipper.hatenablog.com/entry/2020-07-22/android-graphql-apollo みてね
今日はbackendの話
main サービスと content サービスを分離した話
content とは
Quipperは学習サービスを提供している
学習サービスには学習するコンテンツが必要
content を分離した
理由
contentは別アプリからも使われる可能性がある
キャッシュしやすい
トラフィック傾向
content の技術選定: TypeScript + Node.js を選んだ理由
(ここは社内記事から引っ張る)
主に Rails との比較
静的型付け
大半の型が自動生成可能
CQS (Command-Query Separation)
Write と Read の傾向が全く異なる
トラフィック: Read 大, Write 極小
ロジック: Write 大, Read 小
設計ナイト2020 を起点に話が盛り上がった
onk さんが書いてくださった記事 https://onk.hatenablog.jp/entry/2020/11/11/024531
Rails でもできる
オーナーシップ
ts の Database Library 選定
Prisma を利用する
jsでは "Ruby といえば Rails ActiveRecord" のような決定版がない
https://www.prisma.io/dataguide/database-tools/top-nodejs-orms-query-builders-and-database-libraries-in-2020
Sequelize, TypeORM に比べて知名度低い
主な選定理由
リスクの軽減のために考えること
https://www.prisma.io/blog/prisma-raises-series-a-saks1zr7kip6
捨てやすさ・代替のしやすさ
代替しにくくなる機能を使わないことが重要
代替しにくくなりそうな機能
relation
代替しやすい機能
migration
prisma仲間募集