上で開発するためのライブラリであり、クックパッドで4年近くの開発・利用されています。自体については過去の紹介記事を参照いただくことにして詳細は割愛します。乱立させることなくスムーズにサービスが管理しているデータにアクセスできるようにしています。認証認可の機能も提供しているので、共通基盤である認証システムと連携させることで適切なアクセス制御も実現できるようになっています。前節では各サービスの管理しているデータにアクセスする方法を説明しました。次は前述した「あるユーザーが退会したことにより、他のサービスに存在するそのユーザーに関連するアイテムを削除してアクセスできなくする」というケースについて考えていきます。複数のサービスをまたいだデータの連携を実現するためのもっとも単純な方法は、データの変更があったタイミングで、そのデータに依存しているサービスに対し処理を促すリクエストを行なう方法です。この方法は、2つのサービス間でしか連携がないことがわかっている場合はうまく動きます。サービスが増えてくると複雑さが増していきます。この方法では、データの提供元と提供先の両方の実装に手を入れる必要があるため開発自体も煩雑になります。メッセージングを採用しています。経由で取得するという方式がよく取られます。いう名前の社内ライブラリによって実現されており、各サービスで簡単に導入できるようになっています。キューに変更し、そのキューをポーリングしてジョブを実行するという方法に転換しようとしています。機能として実装しています。トピックを関連付けてキューでトピックを購読する機能を追加するだけでこの仕組みは実現可能でした。コンテナ内で行なわれます。ワーカーが詰まる問題を避け、よりスケーラブルなジョブ実行環境となります。コンテナ上で動いているため、この仕組みの恩恵を十分に受けることができます。まとめ本稿では、クックパッドでどのように複数のサービス間でのデータ連携を行なっているかについて述べました。メッセージング系のサービス、内製のソフトウェアを組み合わせて複数のサービスで協調してデータを扱うことを実現しています。サービスを分割するときの心配事の1つとして、既存サービスのデータとうまく連動させるのが難しいというのがありますが、今回紹介した方法である程度は解決できると考えています。ケースで例外はあります。