---
title: "ピタゴラスイッチ"
date: 2018-01-31
categories: "ざっき"
url: "https://hidetaka.dev/ja/blog/186"
---

マイクロサービスってあるじゃないですか。小さなサービスを組み合わせてアプリケーションを構築していくというやつ。

一つのサービスの中でいろんな機能を実装すると、秘伝のタレ的なものが出来上がって辛い目にあうというやつがあって、マイクロサービス化することで最小単位のデプロイになるしバージョニングしたら影響範囲もしぼれるよねって話があったりですごく便利なんです。

ただ、調子に乗ってFaaSやSaaSをいろいろ組み合わせだすと、「どの値をどこに渡せばいいの？」「これどのサービスで事故ってるの？」みたいなことが起きだしてまた別のつらみがあるなぁと。

アプリの内部でピタゴラスイッチ的に障害が出てたのが、マイクロサービスの塊がピタゴラ装置化して来てる感じ・・・でしょうか。

なんとなくここまで書き出してて、Reactのprop / stateの引き回しでつらくなるのに近いのかなという気がしてきたり。あっちもどこでどのstateが変わって、どのpropに影響出るかが把握しづらくなるとかのつらみがありますので。

そう考えると、マイクロサービスアーキテクチャにもReduxのようなサービス間のデータ受け渡しを集約するものが必要になってくるのかもですね。

なんとなくですが、[Event Gateway](https://serverless.com/event-gateway/)がマイクロサービスのReduxポジションを狙っているのかなという気がしたりしてます。

データや状態を１箇所に集約して、必要な時に各サービス（Reactだとコンポーネント）がそこにデータを取りに行くようなイメージ。