Una pausa de 15 milisegundos en la máquina virtual BEAM puede detener millones de pagos de compras en picos de demanda, lo que podría desencadenar un análisis post-mortem de alto riesgo para una empresa como Klarna. Para abordar este tipo de cuellos de botella críticos en producción, el Dr. Erik Stenman ha lanzado 'The BEAM Book', una guía exhaustiva diseñada para ayudar a los ingenieros a comprender la mecánica subyacente de los entornos de ejecución de Erlang y Elixir.

La portada de The BEAM Book que muestra el título y el subtítulo sobre el Erlang Runtime System
La portada de 'The BEAM Book', una guía exhaustiva sobre el Erlang Runtime System (ERTS).www.amazon.com

Esta imagen identifica el tema principal del artículo, el manual técnico recién lanzado.

Motivación e historial de desarrollo

El proyecto comenzó en octubre de 2012 como un único archivo DocBook y se sometió a una década de reescrituras iterativas y cambios estructurales. El autor enfrentó obstáculos significativos, incluidos dos acuerdos de publicación cancelados con O’Reilly y Pragmatic Bookshelf, lo que dio lugar a un repositorio masivo de 6,622 archivos y más de un millón de líneas de texto.

Dos copias físicas de The BEAM Book exhibidas juntas
Copias físicas del libro, que sobrevivieron a una década de desarrollo y múltiples obstáculos editoriales.happihacking.com

Esta imagen visual apoya la narrativa de la larga historia de desarrollo del libro y su lanzamiento final.

Historia de desarrollo de The BEAM Book: 12 de octubre de 2012 El proyecto comenzó con un solo archivo DocBook; 2013 Convenció a O’Reilly para publicarlo; 10 de marzo de 2015 Dividió capítulos en secciones; 20 de enero de 2017 Importó todo a un nuevo repositorio; 23 de marzo de 2017 Comenzó de nuevo con Asciidoctor; 7 de abril de 2017 Puso el repositorio como público
Historia de desarrollo de The BEAM Bookhappihacking.com

Gráfico de HN Digest basado en cifras de happihacking.com; los valores se muestran como en la fuente.

En 2017, el proyecto se trasladó a un repositorio público de GitHub bajo una licencia Creative Commons BY-4.0. Esta transición permitió a la comunidad contribuir con correcciones y diagramas, ayudando al proyecto a alcanzar su estado actual como una referencia definitiva para el entorno de ejecución BEAM.

Un gráfico de hito de estrellas de GitHub que muestra al proyecto superando las 3,000 estrellas
Un gráfico de hito que celebra el apoyo de la comunidad al proyecto en GitHub.happihacking.com

Esta imagen ilustra el compromiso de la comunidad y el crecimiento del proyecto desde su traslado a GitHub.

“Escribí The BEAM Book para que el próximo ingeniero solucione esa pausa antes de que se enfríe el café.”

— Why I Wrote the BEAM Book

Cobertura técnica central

El libro se centra en la mecánica de cómo la máquina virtual BEAM ejecuta y optimiza el código. Cubre cómo el sistema programa y prioriza los procesos bajo una carga pesada, así como cómo se gestionan en memoria los montículos de procesos, las pilas y los binarios.

Las inmersiones técnicas específicas incluyen los esquemas de etiquetado para tipos de datos como enteros y flotantes, y el comportamiento de los recolectores de basura por proceso y globales. También explica cómo el compilador convierte el código en instrucciones y cómo el emulador ejecuta esas instrucciones.

Aplicación práctica y alcance

Diseñado para ingenieros que operan sistemas a gran escala en Erlang o Elixir, el libro sirve como un manual para responder a 'por qué la máquina virtual se comporta así' durante fallos en producción. Incluye orientación práctica sobre el uso de herramientas como 'erlang:trace' para identificar cuellos de botella y rastrear la latencia en el mundo real.

Para mantener el enfoque, el autor excluyó intencionadamente ciertos temas complejos del texto principal, como el nuevo compilador JIT y los programadores sucios. Este alcance garantiza que el libro siga siendo una referencia concentrada para los subsistemas fundamentales que impulsan el Erlang Runtime System (ERTS).