Skip to content
caumond edited this page Jan 20, 2025 · 1 revision

ADR-core-1 Different env

ADR-core-2 monorepo

ADR-core-3 log requires configuration, config should be independdant

ADR-core-4 log is cljc

Design decision:

  • The `config.edn` file was first unique, it needs to be updatable by environment to allow different

value between production and repl, test and dev, but also monorepo vs app

  • The different version of parameter `config.edn` was first based on classpath (differentitated with aliases). It is ok for one app, but it renders the monrepo build complicated as it was naturally gathering all classpath, so all `config.edn` versions. The solution was to be based on environment parameter. So each alias can tell which version it uses, especially monorepo could be different.

Design decision:

  • the log is relying on configuration namespace, so nothing will be logged before that
  • the log api is hosted in a `cljc` file so log is accessible to namespaces in cljc
    • Rationle:
      • deciding to push code in cljc should not prevent to log
      • postponing the decision to host code in frontend or backend is an objective
    • Consequence:
      • This namespace is the entrypoint for both clj and cljs implementations