Learn how to build concurrent, distributed and fault-tolerant applications from scratch using Elixir's powerful concepts and tools with this comprehensive guide.
About This Book
Learn how to apply some of the most useful Elixir patterns and OTP concepts to build robust applications
Deepen your functional programming skills using the powerful Elixir tools and abstractions
Consolidate your knowledge every step of the way while developing a full-fledged personal file server on the Cloud
Who This Book Is For
Almost anyone can learn to write working script and create high quality code but they might lack a structured understanding of what it means to be functional programmer. If you are a Elixir programmer who wants to code efficiently by getting the syntax and usage of a few intricate Elixir features exactly right, this book is for you.
What You Will Learn
Learn how to use Elixir tooling, including IEx and Mix
Find out how an Elixir project is structured and how to create Umbrella applications
Uncover the power behind supervision trees, the basis for fault-tolerance
Understand how you can create a DSL which abstracts uneeded complexity
Create a blazing fast web interface for your application with Phoenix
Discover how you can setup an automatic deployment process to the cloud
Learn how to monitor your application and be warned if anything unexpected happens
Running concurrent, fault-tolerant applications that scale is a very demanding responsibility. After learning the abstractions that Elixir gives us, developers are able to build such applications with inconceivable low effort. There is a big gap between playing around with Elixir and running it in production, serving live requests. This book will help you fill this gap, by not only going into detail on several aspects of how Elixir works, but also, and more importantly, will guide you along the way with concrete examples of how to apply the concepts learned to a full-fledged application.
In this book you will learn how to build a rock-solid application, beginning by using Mix to create a new project. Then you will learn how the use of Erlang's OTP, along with the Elixir abstractions that run on top of it (such as Agent or GenStage), allow you to build applications that are easy to parallelize and distribute. You will also master Supervisors (and supervision trees), and comprehend how they are the basis for building fault-tolerant applications. Then, you will use Phoenix to create a web interface for your application. Upon finishing implementation, you will learn how to take your application to the cloud, using Kubernetes to automatically deploy, scale and manage it. Last, but not least, you will keep your peace of mind by learning how to monitor and collect metrics from your application running on the cloud.