概要
- Val TownはSupabaseから従来型データベース+Clerk認証へ移行
- Clerkの制約と障害が多発し、Better Authへ再移行を決断
- Clerkの「ユーザーテーブル不要」思想がVal Townの設計と衝突
- サードパーティ依存のリスクを痛感し、オープンソース主導へ
- ベンダーロックイン回避と運用の柔軟性を重視した選択
Val Townの認証システム移行の経緯
- 2023年、Val Townは Supabase から従来型データベースへ移行
- データベースは Render、認証は Clerk を採用
- しかし2023年末、 Clerkからの脱却 を課題として認識
- 1か月前、 Better Auth への移行を完了
Clerk採用とその課題
- Clerk は大きな成功を収めている認証サービス
- 5,000万ドル調達、ユーザー多数
- しかし、Val Townの アーキテクチャと衝突
- Clerkは「ユーザーテーブル不要」を推奨
- サードパーティが usersテーブルとsessionsテーブル を管理
- 主な問題点
- APIのレートリミット が厳しく、ユーザーデータ取得に制約
- 1アカウントあたり1秒間に5リクエストまで
- ソーシャル機能で他ユーザー情報を頻繁に取得する用途に不向き
- データ同期の複雑化
- Clerkと自前DBでユーザー情報が二重管理状態
- Webhookによる同期で登録フローが複雑化、アカウント不整合が発生
- セッション管理の単一障害点
- Clerkがダウンすると 全ユーザーログイン不可
- 実際に障害が多発、稼働率も2〜3ナインに留まる
- その他、バグや運用上の問題も多発
- APIのレートリミット が厳しく、ユーザーデータ取得に制約
なぜすぐに移行しなかったのか
- 決定の継続性 や開発効率の観点から即時移行は回避
- Clerkにも SDKの充実 や 管理機能 など長所あり
- Remix、Fastify、Expressなど主要フレームワークに対応
- 管理画面も使いやすく、スパム対策も一定の効果
- シンプルなフロントエンドアプリには適合
- 認証の選択肢自体が少なく、 代替のハードルが高い
- OSS認証は古くメンテ不足、他の認証サービスも同様のリスク
Better Authへの移行理由と評価
- Better Auth はOSSで高品質なコードと多様なフレームワーク対応
- 独立運用が可能、サードパーティ依存を軽減
- ベンダーリスクは残るが、 セッション管理は自社側で実施
- AuthKit(WorkOS) も候補だったが、OSSでの自立性を優先
- Better Authの ダッシュボードや有料アドオン も高評価
- データは自社管理、必要なAPIのみプラグインで提供
- 有料サービスはステートレス運用で、セッション管理に関与しない
- 移行期間 は2週間、ClerkとBetter Auth両対応で段階移行
- セキュリティ面で全コードを精査・テスト
- Better Auth用のスターターテンプレートも用意
得られた教訓と今後の指針
- 可用性は構成要素の最小値 で決まることを痛感
- サードパーティ依存のリスク評価と回避の重要性
- プロダクトの成功や一般的な適合性と 自社要件の最適解 は異なる
- ソフトウェアの進化は早く、 最適解は時期によって変わる ことを実感