Mastering Elixir: Build and scale rock-solid concurrent, distributed and fault-tolerant applications
Andre Albuquerque, Daniel Caixinha
Learn how to build concurrent, distributed and fault-tolerant applications from scratch using Elixir's powerful concepts and tools with this comprehensive guide.
- 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
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.
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
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.