memcache でデータを失う危険があるため、間違った方法のように思えます。
1 秒に 1 回、1 つのエンティティ グループに書き込むことができます。
個別のエンティティ グループを非常に迅速に作成できます。したがって、データをどのように構造化するかによって大きく異なります。たとえば、チャット全体を 1 つのエンティティに保持した場合、そのチャットは 1 秒に 1 回しか書き込むことができません。そして、あなたは1MBに制限されます。
チャットのメッセージごとに個別のエンティティを作成する必要があります。非常に迅速に作成できますが、ログのために、すべてのメッセージをまとめる方法を考案する必要があります。
編集メッセージごとに 1 つのエンティティを使用するとコストがかかりすぎるという Peter Knego の意見に同意します。彼のバックエンドの提案も非常に優れていますが、アプリが人気がある場合、バックエンドはそれほどうまくスケーリングしません.
シャーディングを避けようとしていましたが、必要になると思います。シャーディングに慣れていない場合は、https ://developers.google.com/appengine/articles/sharding_counters を読んでください。
シャーディングは、会話内のすべてのメッセージに対して 1 つのエンティティを記述することと、メッセージごとに 1 つのエンティティを記述することの間の中間になります。メッセージを多数のエンティティ間でランダムに分割します。たとえば、メッセージを 3 つのエンティティに保存する場合、5x/sec と書くことができます (ほとんどの人間の会話はそれより速くなるとは思いません)。
取得時に、3 つのエンティティを取得し、メッセージを時系列でマージする必要があります。これにより、コストを大幅に節約できます。ただし、マージを行うにはコードを記述する必要があります。
もう 1 つの利点は、会話の制限が 1MB ではなく 3MB になることです。