This is the code repository for Mastering Elixir, published by Packt.
Leverage the power of Elixir programming language to solve practical problems associated with scalability, concurrency, fault tolerance, and high availability.
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 going into detail on several aspects of how Elixir works and showing concrete examples of how to apply the concepts learned to a full-fledged application.
This book covers the following exciting features:
- Use Elixir tools, including IEx and Mix
- Find out how an Elixir project is structured and how to create Umbrella applications
- Discover the power of supervision trees, the basis for fault-tolerance
- Create a domain-specific language (DSL) which abstracts complexity
- Create a blazing-fast web interface for your application with Phoenix
If you feel this book is for you, get your copy today!
All of the code is organized into folders. For example, Chapter02.
The code will look like the following:
$ mix release.init
An example config file has been placed in rel/config.exs, review it,
make edits as needed/desired, and then run `mix release` to build the release
Following is what you need for this book: Mastering Elixir is for you if you have experience in Elixir programming and want to take it to the next level. This Elixir book shows you how to build, deploy, and maintain robust applications, allowing you to go from tinkering with Elixir on side projects to using it in a live environment. However, no prior knowledge of Elixir is required to enjoy the complex topics covered in the book.
With the following software and hardware list you can run all code files present in the book (Chapter 1-11).
Chapter | Software required | OS required |
---|---|---|
1 | Elixir 1.6 | Windows, Mac OS X, and Linux (Any) |
9 | Docker | Windows, Mac OS X, and Linux (Any) |
9 | Docker-compose | Windows, Mac OS X, and Linux (Any) |
9 | Google Cloud SDK | Windows, Mac OS X, and Linux (Any) |
9 | Kubectl | Windows, Mac OS X, and Linux (Any) |
2 | Git | Windows, Mac OS X, and Linux (Any) |
We also provide a PDF file that has color images of the screenshots/diagrams used in this book. Click here to download it.
André Albuquerque is a software engineer at Onfido, after working in the banking industry for seven years. He has a master's degree from Instituto Superior Técnico in distributed systems and software engineering, and, during his banking detour, he obtained a master's degree in economics. He is currently developing Onfido's microservices using Elixir and Ruby, learning every day about how applications can score and scale if we apply the correct tools and sound coding practices from the get-go. In his time off, he loves to build his own keyboards, play basketball, and spend time with his wife and son.
Daniel Caixinha is a software engineer at Onfido, where he is using Elixir to build resilient systems that can also handle the high growth of the business. After graduating from Instituto Superior Técnico, he joined the startup world, mainly using Ruby, but also got the chance to play around with Elixir. Upon joining Onfido, he got the chance to take Elixir more seriously, which made him fall in love with functional programming in general, and Elixir in particular. Besides building Elixir applications, he is fostering the use of Elixir, being also a member of the Lisbon Elixir meetup.
Click here if you have any feedback or suggestions.