# Elixir in Action - Sasa Juric Published: 2019-01-03 by Simon and Schuster [[Elixir]] [[Erlang]] and [[Erlang OTP]] ![Elixir in Action cover](http://books.google.com/books/content?id=ljszEAAAQBAJ&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api) For each point, explain how [[Erlang OTP]] facilitates that functionality: - Concurrency and distribution patterns - Error detection and recovery in concurrent systems - Packaging code into libraries - Systems deployment - Live code updates > [!ai]+ AI > > Erlang OTP (Open Telecom Platform) facilitates the following functionalities in the book "Elixir in Action" by Sasa Juric: > 1. Concurrency and distribution patterns: OTP provides a set of abstractions and patterns for building concurrent and distributed systems in Erlang. It includes features like lightweight processes, message passing, supervision trees, and fault tolerance mechanisms. These tools make it easier to build highly concurrent and fault-tolerant systems. > 2. Error detection and recovery in concurrent systems: OTP's supervision trees allow for automatic error detection and recovery in concurrent systems. By structuring processes into supervised hierarchies, errors occurring in child processes can be propagated up the tree to a supervisor process, which can then take appropriate actions such as restarting or terminating faulty processes. > 3. Packaging code into libraries: OTP provides tools like the Erlang Package Manager (rebar3) that help package code into reusable libraries. This makes it easy to distribute and manage dependencies for Elixir applications. > 4. Systems deployment: OTP includes features like release handling, hot code swapping, and distributed node communication that facilitate system deployment. With OTP, new versions of code can be deployed without downtime or interruption to running systems through hot code swapping, where running processes are updated with new code while they continue executing. > 5. Live code updates: In addition to facilitating system deployment, OTP enables live code updates without interrupting running systems. Through mechanisms such as hot code swapping and the use of versioned modules, developers can update their applications while they are still running, allowing for continuous improvement and maintenance of live systems. > Overall, Erlang OTP provides a robust set of tools and patterns that greatly simplify the development of concurrent, fault-tolerant, distributable, and upgradable Elixir applications described in the book "Elixir in Action."