IIS 上の .NET に GraphQL API を実装し、Node.js アプリ サーバーとして dataLoader API を実装する予定です。GraphQL は、dataLoader から SQL Server へのインターフェイスとなります。
現在のところ、すべてのアプリケーションは単一の物理サーバー上にありますが、スケーラビリティが必要な場合は将来的に分離される可能性があります。
これの私の理由:
- 既存のコードは IIS/COM/DCOM/ActiveX/.NET/ASP/ASPX に依存します
- 実装と推論がより簡単
- アクセス制御 (Web サーバーは dataLoader コードを参照する必要がなく、ACL を dataLoader に実装できます)
- 別のデータベース (redis、mongodb など) とやり取りする機会があれば、より簡単になります。
- コードの一部を徐々にスライスして移植し、コードの共有を容易にすることができます (別の Linux サーバーで)
- (私は好きです) Node.js は探索可能ですが、まだオプトインできません
まず、これは理にかなっていますか、それとも私はトラブルを求めていますか?
GraphQL と dataLoader の間でバイナリ シリアル化形式を使用することは理にかなっていますか? それとも単純な Web サービスの方が単純でしょうか?
ラウンドトリップが増えると、パフォーマンスの問題が発生する危険がありますか? (質問があまりにもオープンエンドですか? 直観的には、最終的にはより適切に拡張できるように思えます)
GraphQL と dataLoader の間で明示的な認証が必要ですか? または、セッション データ (ユーザー名を含む) をそのまま送信し、dataLoader にコンテキストとして指定されたユーザー名を信頼させることはできますか? 多分トークンを渡しますか?ここで JWT トークンは役に立ちますか?