The Registry is back
"The Registry" is a bad Windows dream, something left behind when I switched off Windows for good circa 2011.
It's back. It's a new Elixir 1.4 module where you can store values that you'd like to access globally. Potentially, you want to store a pid of a worker you started. You can store that in the registry like so.
{:ok, worker_pid} = MyWorker.start_link()
supervisor(Registry, [:unique, Registry.WorkerPids])
Registry.register(Registry.WorkerPids, :my_worker, worker_pid)
[{_, found_worker_pid}] = Registry.lookup(Registry.WorkerPids, :my_worker)
A lot is going on here.
- We start a worker
-
We start the registry process for register
Registry.WorkerPids
-
We register the key/value in a specific register (
Registry.WorkerPids
) - We lookup the value in that register with that key
Its important to note that the Registry.WorkerPids
symbol is just an atom, not a module. There is no WorkerPids
module implementing any special functionality anywhere.
Definitely a lot of ceremony for a key/value store. I expect to find practical uses for it as I experience more complex Elixir systems.
Tweet