有効期限のないAPIキーの問題点
何年も前に発行され、一度もローテーションされず、今も有効なキーは、便利なものではありません。何年も誰も実際に確認していない負債です。
「リアルタイム」という言葉は、応答が速いことの略語として多くの位置データ製品に付けられています。速度は最適化する価値のある本物の要素です。しかしそれは、世界の現在の状態について何かを表すデータにとって「リアルタイム」が本来意味すべきこととは、まったく別の主張でもあります。本来の意味とは、答えが今この瞬間に正しいことを反映しているということであり、しばらく前にまとめられてからそれ以降意味のある更新がされていないデータセットに対して、低遅延ですばやく検索することではありません。
この区別が特に重要になるのはIPジオロケーションです。IPアドレスの範囲とその物理的な位置との対応関係は、アドレスブロックを管理する地域インターネットレジストリによってブロックが再割り当てされたり、再配分されたり、用途変更されたりするにつれて、時間とともに変化するからです。古い対応関係に対して数ミリ秒で応答する検索は、速いと同時に間違っており、速さは間違いを正すのに何の役にも立ちません。本当のリアルタイムのIPジオロケーションには、根拠となる対応関係そのものが最新に保たれていることが必要です。そのためには、ライブの検索処理と、固定された1回限りのスナップショットとして扱われるのではなく更新されるキャッシュが必要です。
私たちのIPジオロケーションは、まさにこの区別を軸に構築しています。ライブで実行され、キャッシュは鮮度の代わりとしてではなく応答時間を短く保つために使われます。また、対応関係を最新に保つ唯一の仕組みとして定期的なcronジョブに頼るのではなく、再確認が必要なデータを処理し続けるバックグラウンドの再試行プロセスがあります。目指しているのは、キャッシュによって速くしながらも古くはしないことです。これは、最新かどうかにかかわらず二度と何も再計算しないためだけに存在するキャッシュとは、異なる設計目標です。
同じ区別は、形を変えてタイムゾーンのデータにも当てはまります。最近の夏時間の切り替えや、最近の政府によるルール変更を考慮していないオフセットを返す速い応答は、たとえ10ミリ秒で返ってきたとしても、意味のある意味でリアルタイムとは言えません。ここでのリアルタイムとは、根拠となる参照データ(この場合はIANAタイムゾーンデータベース)が変更されるたびに追跡され適用されていることを意味します。最近誰も手を付けていないテーブルに対して応答がすばやく返ってくることではありません。
遅延は最も測定しやすく示しやすい部分ですが、私たちは「リアルタイム」を、まずデータの鮮度についての主張として、次に応答遅延についての主張として扱うべきだと考えます。プロバイダーは、根拠となるデータを何か月もひそかに古いまま放置しながら、応答時間を1秒未満にまで本当に最適化することができます。そして外から見ると、速くて間違った答えと速くて正しい答えは、後工程の何かがその違いに依存するまでまったく同じに見えます。より難しく目に見えにくい仕事は、データそのものを最新に保つことです。それこそが実際にこのラベルに値する部分であり、顧客がリクエストの時間を計るだけでは検証できない部分でもあります。