How are you building Erlang applications in 2022?

How are you building Erlang applications?

If you’re building web apps do you use any web frameworks? If so which ones? If not, why not and what do you use instead?

Are there any libraries or tools you always turn to?

Is there a specific way in which you architecture your apps?

I think a lot of people will be interested in this thread - me included! :003:

4 Likes

Edited title and moved 3 posts to: What Erlang/BEAM related stuff are you doing? :smiley:

I recently started a new Erlang project at my work. Here are some salient points from the tooling perspective:

  1. Used rebar3
  2. Structure as multi-app project (Multi-App Projects | Adopting Erlang)
  3. Introduce code formatting from the start (GitHub - WhatsApp/erlfmt: An automated code formatter for Erlang)
  4. Logger with flatlog for logging.
  5. CT for testing (with eunit assert macros for better failure messages)
  6. docker-compose ct hook for running external services for some end-to-end tests.
  7. Different release definitions in the top level rebar.config to support releasing a subset of apps in a release.
  8. Used sys_config_src feature of relx to be able to take some configuration from environment variables.
  9. Release multi-platform docker images (modified version what’s described here: Docker | Adopting Erlang)
  10. Integrate with Jenkins (cth_surefire, covertool)

Will add to the list if I remember something else.

7 Likes

Interesting idea, I’ve not tried that.

2 Likes

Note the asserts are in stdlib now, -include_lib("stdlib/include/assert.hrl")., since this was so common :slight_smile:

8 Likes