gproc のはなしをします。 背景 Erlang ではプロセスを作りプロセスに名前を与えることにより、プロセスIDを引き回すことなくそのプロセスとやりとりする、といったパターンがよくあります。Erlang はそういったパターンのために erlang:register(Name, Pid) という関数を用意しており、これを用いてプロセスに名前をつけることができます。しかしこの公式に用意されている "process registry" にはかなり制限があります。 Name にはアトムしか使えない。 プロセスはただ一つの名前しか持てないし、ある名前はただ一つのプロセスにしかつけることができない。 ローカルとグローバルのAPI、セマンティクスが異なる。 など。 これには色々問題があって、例えば、 ユーザのセッションごとにプロセスを生成するようなネットワークアプリケーションで、あるユーザの現在の状
![gproc - Extended process registry for Erlang - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/e5aad12f55c9506b8add233de311bf12699448fb/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Fogp-background-1150d8b18a7c15795b701a55ae908f94.png%3Fixlib%3Drb-1.2.2%26w%3D1200%26mark%3Dhttps%253A%252F%252Fqiita-user-contents.imgix.net%252F~text%253Fixlib%253Drb-1.2.2%2526w%253D840%2526h%253D380%2526txt%253Dgproc%252520-%252520Extended%252520process%252520registry%252520for%252520Erlang%2526txt-color%253D%252523333%2526txt-font%253DAvenir-Black%2526txt-size%253D54%2526txt-clip%253Dellipsis%2526txt-align%253Dcenter%25252Cmiddle%2526s%253D7fdcec13fe12fee6659d4c880f922a2d%26mark-align%3Dcenter%252Cmiddle%26blend%3Dhttps%253A%252F%252Fqiita-user-contents.imgix.net%252F~text%253Fixlib%253Drb-1.2.2%2526w%253D840%2526h%253D500%2526txt%253D%252540mururu%2526txt-color%253D%252523333%2526txt-font%253DAvenir-Black%2526txt-size%253D45%2526txt-align%253Dright%25252Cbottom%2526s%253D42b572c07b2e27d26f8e4db044b28d07%26blend-align%3Dcenter%252Cmiddle%26blend-mode%3Dnormal%26s%3D67506c83d91a7532e25ddd0b3e6c7e16)