Video description
"Move seamlessly from learning the basics of Elixir to mastering the key concepts of OTP."
Roberto Infante, Devqf Ltd.
The Little Elixir & OTP Guidebook gets you started programming applications with Elixir and OTP. You begin with a quick overview of the Elixir language syntax, along with just enough functional programming to use it effectively. Then, you'll dive straight into OTP and learn how it helps you build scalable, fault-tolerant and distributed applications through several fun examples.
Elixir is an elegant programming language that combines the expressiveness of Ruby with the concurrency and fault-tolerance of Erlang. It makes full use of Erlang's BEAM VM and OTP library, so you get two decades' worth of maturity and reliability right out of the gate. Elixir's support for functional programming makes it perfect for modern event-driven applications.
Inside:- Covers Elixir 1.2 and 1.3
- Introduction to functional concurrency with actors
- Experience the awesome power of Erlang and OTP
Made for programmers comfortable with a standard programming language like Ruby, Java, or Python. FP experience is helpful but not required.
Benjamin Tan Wei Hao is a software engineer at Pivotal Labs, Singapore. He is also an author, a speaker, and an early adopter of Elixir.
Engaging. Practical. Informative. Thumbs up!
Dane Balia, Hetzner
If you’ve never touched Elixir or Erlang before, this book will open the door to a new universe for you.
Thomas Peklak, Emakina CEE
Offers techniques and insights difficult or impossible to find anywhere else.
Kosmas Chatzimichalis, Mach7x
Table of Contents
Chapter 1. Introduction
Chapter 1. How is Elixir different from Erlang?
Chapter 1. Why Elixir and not X?
Chapter 1. The road ahead
Chapter 2. A whirlwind tour
Chapter 2. Data types
Chapter 2. Guards
Chapter 2. Lists
Chapter 2. Meet |>, the pipe operator
Chapter 2. Exercises
Chapter 3. Processes 101
Chapter 3. The worker
Chapter 3. Creating processes for concurrency
Chapter 3. Collecting and manipulating results with another actor
Chapter 3. Exercises
Chapter 4. Writing server applications with GenServer
Chapter 4. OTP behaviors
Chapter 4. Hands-on OTP: revisiting Metex
Chapter 4. Callbacks 1st part
Chapter 4. Callbacks 2nd part
Chapter 4. Reflecting on chapter 3’s Metex
Chapter 4. Exercise
Chapter 5. Concurrent error-handling and fault tolerance with links, monitors, and processes
Chapter 5. Setting up the ring
Chapter 5. Linking a terminated/nonexistent process
Chapter 5. Monitors
Chapter 5. Implementing a supervisor
Chapter 5. Handling crashes
Chapter 6. Fault tolerance with Supervisors
Chapter 6. A sample run of Pooly
Chapter 6. Implementing the worker Supervisor
Chapter 6. max_restarts and max_seconds
Chapter 6. Implementing the server: the brains of the operation
Chapter 6. Prepopulating the worker Supervisor with workers
Chapter 6. Checking out a worker
Chapter 6. Implementing the top-level Supervisor
Chapter 6. Exercises
Chapter 7. Completing the worker-pool application
Chapter 7. Adding the top-level Supervisor
Chapter 7. Adding the brains for the pool
Chapter 7. Version 4: implementing overflowing and queuing
Chapter 7. Queuing worker processes
Chapter 7. Exercises
Chapter 8. Supervising Tasks with Tasks.Supervisor
Chapter 8. Distribution and load balancing
Chapter 8. Distribution for load balancing
Chapter 8. Introducing Tasks
Chapter 8. Onward to distribution!
Chapter 8. Remotely executing functions
Chapter 8. Making Blitzy distributed
Chapter 9. Distribution and fault tolerance
Chapter 9. An overview of failover and takeover in Chucky
Chapter 9. Failover and takeover in action
Chapter 9. Connecting nodes in a LAN, cookies, and security
Chapter 10. Dialyzer and type specifications
Chapter 10. Success typings
Chapter 10. Getting started with Dialyzer
Chapter 10. Software discrepancies that Dialyzer can detect
Chapter 10. Type specifications
Chapter 10. Writing your own types
Chapter 11. Property-based and concurrency testing
Chapter 11. Patterns for designing properties
Chapter 11. Generators
Chapter 11. Creating custom generators
Chapter 11. Recursive generators
Chapter 11. Concurrency testing with Concuerror
Chapter 11. Reading Concuerror’s output
Chapter 11. Resources