gproc のはなしをします。 背景 Erlang ではプロセスを作りプロセスに名前を与えることにより、プロセスIDを引き回すことなくそのプロセスとやりとりする、といったパターンがよくあります。Erlang はそういったパターンのために erlang:register(Name, Pid) という関数を用意しており、これを用いてプロセスに名前をつけることができます。しかしこの公式に用意されている "process registry" にはかなり制限があります。 Name にはアトムしか使えない。 プロセスはただ一つの名前しか持てないし、ある名前はただ一つのプロセスにしかつけることができない。 ローカルとグローバルのAPI、セマンティクスが異なる。 など。 これには色々問題があって、例えば、 ユーザのセッションごとにプロセスを生成するようなネットワークアプリケーションで、あるユーザの現在の状