-
Mercari マスター v2 API
プロジェクトの目的:
内部および外部クライアントが使用する共有マスターデータへのアクセスを提供する Mercari マスター API のパフォーマンス、効率性、保守性を向上させること。
API に関連するインフラストラクチャコストとトラフィックコストを削減すること。
体制・人数: 記事中で明示的に言及されていません。
自分のポジション・役割: 記事はプロジェクト全体を概括しているため、当てはまりません。
課題:
オリジナルのマスター API は gRPC と静的なデータ更新に依存していたため、スケーラビリティと効率性に限界があった。
データセットのサイズと複雑さの増大に伴い、コストと技術的な制限が増加した。
動的な機能や委任されたデータセットを扱う際の難しさ
解決策:
マスター API を高速かつ効率的な配信に最適化された汎用的なデータセットサーバーとして再設計しました。
データセットの検証、トランスコーディング、正規化、および複数の形式での圧縮を行うための個別的なインジェストパイプラインを実装しました。
コンテンツネゴシエーションと ETag を活用して、効率的なデータ転送とキャッシュを実現しました。
頻繁に更新されるデータセットに対してデルタエンコーディングを導入し、トラフィックと帯域幅の使用量をさらに削減しました。
ビジネス上の成果:
インフラとトラフィックコストで年間 100 万米ドル以上の節約を実現しました。
クライアントと CDN 間のネットワークトラフィックを 90% 以上削減しました。
クライアントに対する API のエンドツーエンドレイテンシーを改善しました。
マスター API のスケーラビリティと保守性を向上させました。
補足:
記事では、Zstandard 圧縮と Zopfli による Gzip 圧縮など、将来的な改善の可能性についても言及されています。
この設計は拡張性が高く、他の大きな静的資産を配信するために活用できる可能性があります。バックエンド開発、API設計、コンテンツデリバリーネットワーク (CDN)、圧縮、キャッシュ、データインジェスト