September 18, 2019

Cowboy architecture and execution flow

Cowboy is the default HTTP server for Erlang/OTP. It's built on top of Ranch which is a socket worker pool for TCP. Together they power most of the web apps written in Erlang or Elixir, including the ones built on Plug or Phoenix framework. Read more

January 7, 2019

Getting Core Erlang from Elixir

It's mentioned in Erlang/Elixir Syntax: A Crash Course that Elixir compiles into BEAM bytecode via Erlang Abstract Format. But actually, there's an extra step between the Erlang Abstract Format and the BEAM bytecode – Core Erlang. It's a neat little language with a strict syntax that isn't suited for writing by hand but is used as an intermediary format to run optimizations, checks, and simplifications. Dialyzer also works on the Core Erlang level. Read more