こんにちは。Tunnelにてエンジニアをしてます阿南です。

最近は、WebやAPIまわりを中心にやっております。

RoomClipの技術ブログのリリース早々に自分の順番が回ってきたので、拙筆ではありますが、技術ブログを書かせていただきます。

はじめに

RoomClipではユーザーは投稿した自分の写真に含まれる商品検索して、アイテムタグとしてその写真にタグ付けすることができる機能があります。

https://cdn.roomclip.jp/v1/w/640/roomclip-engineer/img/bc03bdf60e34c0b304aea3d3db960febb7a0ed2f.jpg

この商品検索の際、各ショップが提供しているAPIを利用して商品検索を行っているわけなのですが、外部から提供されているサービスを利用する時って、自分が実装した部分の範疇にないところで問題が起きたり、サービスの定める仕様に左右されたりと何かと問題があるんですよね。

このアイテム検索の機能拡張でも同様で、直面したのは以下の問題でした。

このようなケースの解決策として、サーキット・ブレーカーなるアイデアがあるらしく、それを元にしてアーキテクチャを構成することで、外部APIを利用した際に発生した上記のような問題を、回避・解決した話をしたいと思います。

サーキット・ブレーカーとは?

簡単にまとめますと