Nostrでサーバーレスなアプリケーションは作れるのか?
Webアプリケーションを作るとき、多くの場合は以下のような構成になります
Client
↓
Application Server
↓
Database
ユーザー間でデータを同期する場合、通常はバックエンドサーバーを用意し、APIやデータベースを設計する必要があります
しかし、もしアプリケーション間の通信・同期レイヤーを既存のネットワークに任せることができたらどうでしょうか
そこで注目しているのが Nostr です
Nostrとは?
Nostrは、Relay(リレー)と呼ばれるサーバーを利用してイベントを送受信する分散型プロトコルです
重要なのは、アプリケーションごとに専用サーバーを用意しなくても、既存のRelayネットワークを利用できる点です
既存アプリとの違い
一般的なアプリ:
User
↓
Own Server
↓
Database
Nostrを利用する場合:
Application
↓
Nostr Relay Network
Relayはイベントの配送・保持を担当します
アプリケーション側は「どのようなイベントを扱うか」に集中できます
ただし課題もある
Nostrはイベント通信の仕組みを提供します
しかし、アプリケーションを作るにはまだ考えることがあります
- Object管理(データ)
- User管理(ユーザー)
- Permission(権限)
- State同期(状態)
- History管理(履歴)
これらは各アプリケーションが個別に実装していました
そこで作っているのが Application Object Protocol (AOP) です
次の記事では、AOPが何を解決するのかを紹介します