small medium large xlarge

Adopting Elixir: From Concept to Production


Cover image for Adopting Elixir

Adopting Elixir

From Concept to Production


Adoption is more than programming. Elixir is an exciting new language, but to successfully get your application from start to finish, you’re going to need to know more than just the language. You need the case studies and strategies in this book. Learn the best practices for the whole life of your application, from design and team-building, to managing stakeholders, to deployment and monitoring. Go beyond the syntax and the tools to learn the techniques you need to develop your Elixir application from concept to production.

Choose Your Format(s)

  • $21.95 In Stock
    • Beta: What do I get?

  • Ebooks are DRM free.

  • Ebook delivery options.

  • The Paper Book will ship on 2018-02-10 (roughly).

About this Title

Pages: 275 (est)
Published: 2018-02-10
Release: B3.0 (2017-12-04)
ISBN: 978-1-68050-252-7

Learn real-life strategies from the people who built Elixir and use it successfully at scale. See how Ben Marx and Bleacher Report maintain one of the highest-traffic Elixir applications by selling the concept to management and delivering on that promise. Find out how Bruce Tate and icanmakeitbetter hire and train Elixir engineers, and the techniques they’ve employed to design and ensure code consistency since Elixir’s early days. Explore customer challenges in deploying and monitoring distributed applications with Elixir creator José Valim and Plataformatec.

Make a business case and build a team before you finish your first prototype. Once you’re in development, form strategies for organizing your code and learning the constraints of the runtime and ecosystem. Convince stakeholders, both business and technical, about the value they can expect. Prepare to make the critical early decisions that will shape your application for years to come. Manage your deployment with all of the knobs and gauges that good DevOps teams demand. Decide between the many options available for deployment, and how to best prepare yourself for the challenges of running a production application.

This book picks up where most Elixir books leave off. It won’t teach you to program Elixir, or any of its tools. Instead, it guides you through the broader landscape and shows you a holistic approach to adopting the language.

What You Need

This book works with any version of Elixir.

Contents & Extracts

This book is currently in beta, so the contents and extracts will change as the book is developed.

  • Introduction
  • Three Adoption Stories
    • icanmakeitbetter is Acquired
    • Bleacher Report Improves Performance and Reliability
    • Plataformatec Supports Early Adopters
    • Embracing End-To-End Adoption
    • Wrapping Up
  • Concept
    • Team Building
      • Training Developers
      • When Things Go Wrong
      • Hiring Elixir Developers
      • Conducting Interviews
      • Wrapping Up
    • Ensuring Code Consistency excerpt
      • Coding Standards
      • Typespecs and Dialyxir
      • Documentation
      • Tests and Code Coverage
      • Putting It All Together: Code Reviews
      • Wrapping Up
    • Legacy Systems and Dependencies
      • Replacing a legacy web app
      • Terraform and API Evolution
      • Incremental Releases Into Production
      • Umbrella projects: between monoliths and services
      • Managing third-party dependencies
      • Wrapping Up
  • Development
    • Making the Functional Transition excerpt
      • Elixir vs Mutable Objects
      • Polymorphism
      • Agents and Tasks
      • The Generic Server
      • Supervisors
      • Wrapping Up
    • Distributed Elixir
      • Remote Message Passing
      • Persistence Strategies
      • Finding Processes
      • Cache and ETS
      • Message Delivery Guarantees
      • Homogenous vs Heterogenous Systems
      • Wrapping Up
    • Integrating with External Code
      • Lay of the Land
      • Strategy 1. Native Implemented Functions (NIFs)
      • Strategy 2. Communicating via I/O with Ports
      • Strategy 3. The Erlang Distribution Protocol
      • Wrapping Up
  • Production
    • Coordinating Deployments excerpt
      • Deploying with Mix
      • run_erl and heart
      • Releases
      • Upgrading Code
      • Distributed Erlang
      • Wrapping Up
    • Metrics and Performance Expectations
      • Instrumenting Your System
      • Instrumenting Ecto
      • Instrumenting Phoenix
      • Assessing Performance
      • Load Testing
      • Profiling
      • Benchmarking
      • Wrapping Up
    • Making Your App Production Ready
      • Logs and errors
      • SASL reports
      • Tracing
      • Using Other Advanced Tools
      • Wrapping up


Ben Marx is a lead developer at Bleacher Report and one of the first to use Elixir at scale. José Valim is the creator of Elixir and a founder at Plataformatec. Bruce Tate is the CTO of, and the author of Programming Phoenix, Seven Languages in Seven Weeks, and more than ten other books.