しかし、リレーショナル・データベースの性質上、API サーバーがデータベースの構造を固めて、データベースと密に結合させなければなりません。API サーバー以外からのデータ更新や読み取りは行うことができなかったり、自動スケールできない仕様のためここにボトルネックを形成しがちでした。
ChatGPT 等の AI が登場する現代において、アプリ開発は根本から変わってきており、大きなシステムをリプレースしていくよりは、小さくアプリをスタートさせてアジリティを高く保ちながら検証を繰り返すような方法がより求められるようになっています。
よりスケールしやすいドキュメント指向データモデルの Firestore へ移行することにより、スケーリングのボトルネックを解消でき、より柔軟で快適な開発環境を手に入れることができます。
ELSOUL LABO B.V. (本社: オランダ・アムステルダム、以下エルソウルラボ)は、フルスタック TypeScript サーバーレスフレームワークの Skeet について、よりコンパクトで強力なアーキテクチャへの移行を発表しました。
ボトルネックからの解放
Skeet は従来、 リレーショナル・データベースの Cloud SQL (Postgres SQL)を利用し、GraphQL API を提供していました。
これには、今まで通りの慣れた方法でリレーショナルデータベースを管理し、キャッシュを有効に使いながら便利な API を提供するという狙いがありました。現行のデータベースはリレーショナル・データベースが多く、そこからの移行などを考えると、この方法は正しく見えました。
しかし、リレーショナル・データベースの性質上、API サーバーがデータベースの構造を固めて、データベースと密に結合させなければなりません。API サーバー以外からのデータ更新や読み取りは行うことができなかったり、自動スケールできない仕様のためここにボトルネックを形成しがちでした。
ChatGPT 等の AI が登場する現代において、アプリ開発は根本から変わってきており、大きなシステムをリプレースしていくよりは、小さくアプリをスタートさせてアジリティを高く保ちながら検証を繰り返すような方法がより求められるようになっています。
よりスケールしやすいドキュメント指向データモデルの Firestore へ移行することにより、スケーリングのボトルネックを解消でき、より柔軟で快適な開発環境を手に入れることができます。
より軽量なアーキテクチャ
現在の Docker コンテナ単位でスケールさせる Cloud Run から、Function(機能)単位でスケールさせる Cloud Functions へと移行します。
Skeet はビジネスロジックごとにデプロイされる Functions を一括で管理します。フロントエンドから Functions を利用(呼び出し)しやすいようにツールを提供します。まるでモノリスを開発しているかのように快適な開発体験を実現しようとしています。Functions の呼び出しから Firestore のデータバリデーションまで、一貫してタイプセーフで安全高速な開発環境を提供します。
従来は API、Worker、App と 3 つの 大きなディレクトリ を持った複雑なモノリポを形成していましたが、App を起点に Functions を追加する、よりコンパクトなスタイルへと移行します。
コード量が減り開発体験及びメンテナンス性を向上させながらも、アプリのスケール性能を高めることができます。
フルスタック TypeScript サーバーレスアプリケーションフレームワーク “Skeet”
Skeet は、TypeScript で開発されたフルスタックサーバーレスアプリケーションフレームワークであり、高速で簡単にアプリケーションを開発、サービスを運用することができます。
Cloud Functions, Firebase を活用したコンパクトなバックエンド開発環境と、React Native で iOS と Android 両対応の快適で安全なモバイルアプリケーション開発を実現しています。
Skeet は Google Cloud のインテグレーションプロダクトとして認定されています。また、Skeet は Web3 アプリの開発にも対応しており、Solana の Grizzlython プロジェクトとして認定されています。
Skeet ドキュメント: https://skeet.dev/