Creating Elixir module registry via protocols
https://romankotov.com/articles/elixir-module-registry-via-protocols.html This post describes how to use introspection feature of protocols to create a compile-time module registry.
This approach helps me to tag modules and gather some useful information about them. Using it in my Elixir Smart Home project
It also covers another ways to create a module registry, and some pitfalls that I have faced to make it work.
Read next Throttling and Blocking Bad Requests in Phoenix Web Applications with PlugAttack