# What cannot be runtime config?

**URL:** <https://forum.elixirforum.com/t/what-cannot-be-runtime-config/38499>\
**Category:** Questions\
**Tags:** config\
**Created:** [March 26, 2021, 2:56pm UTC](https://forum.elixirforum.com/t/what-cannot-be-runtime-config/38499 "2021-03-26T14:56:08Z")\
**Posts on this page:** 1\
**Showing post:** 4

<div class="post-metadata">

**Author:** ![lud](https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/lud/32/14382_2.png) [@lud](https://forum.elixirforum.com/u/lud)\
**Post date:** [March 29, 2021, 1:24pm UTC](https://forum.elixirforum.com/t/what-cannot-be-runtime-config/38499/4 "2021-03-29T13:24:59Z")

</div>

Well if we are talking about your application then you already know it. And if we are talking about a library then it is either documented in the configuration section of the documentation, if it exists, or you have to dive in the code:

Module that define macros call `defmacro`. Module that use macros call `use SomeModule` or `require SomeModule`.

I am not sure if `import SomeModule` also “requires” the module to be able to call its macros.

Unfortunately this only gets you so far…

That is why, when they say " if it **can** be set at runtime, it **should** be set at runtime", then I would say “yes, if it is environment dependent (a hostname, a port, a database connection string, anything that you would put in your .env files)”. Otherwise, if it is something that doesn’t change, the compile-time config is fine.

---

_[View the full topic](https://forum.elixirforum.com/t/what-cannot-be-runtime-config/38499)._
