次のシナリオを想定します。Web アプリケーションが RESTful API を介してリソースを提供します。多くのクライアントがこの API を使用します。目標は、クライアント上のデータを Web アプリケーションと (双方向で) 同期した状態に保つことです。
これを行う最も簡単な方法は、クライアントが最後に API と同期してから変更されたリソースがあるかどうかを API に問い合わせることです。これは、クライアントがタイムスタンプを伴う適切なリソースを API に要求する必要があることを意味します (データを更新する必要があるかどうかを確認するため)。これは、帯域幅の不必要な消費という点で、オーバーヘッドが最小のアプローチのように思えます。
ただし、このアプローチには、設計と責任の点でいくつかの欠点があると感じています。たとえば、API は、リソースが古くなっているかどうかのチェックに対処する必要はありません。API の唯一の責任は、更新の側面に対処する必要なく、要求されたときにリソースを提供することであるように思われます。この 2 番目のアプローチに従うと、クライアントは、データを更新して Web アプリケーションとの同期を維持する必要があるたびに、大量のデータを要求します。つまり、クライアントは、返されたデータがローカルに保存されたデータよりも新しいかどうかを確認します。このプロセスが数分おきに行われると、システムに大きな負荷がかかる可能性があります。
私はこれを正しく見ていますか、それとも見落としている中道がありますか?