O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

The Little Elixir & OTP Guidebook Video Edition

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

  1. Chapter 1. Introduction 00:05:04
  2. Chapter 1. How is Elixir different from Erlang? 00:08:20
  3. Chapter 1. Why Elixir and not X? 00:03:51
  4. Chapter 1. The road ahead 00:09:37
  5. Chapter 2. A whirlwind tour 00:04:54
  6. Chapter 2. Data types 00:09:50
  7. Chapter 2. Guards 00:10:51
  8. Chapter 2. Lists 00:07:51
  9. Chapter 2. Meet |>, the pipe operator 00:05:41
  10. Chapter 2. Exercises 00:02:29
  11. Chapter 3. Processes 101 00:07:45
  12. Chapter 3. The worker 00:06:50
  13. Chapter 3. Creating processes for concurrency 00:06:53
  14. Chapter 3. Collecting and manipulating results with another actor 00:06:23
  15. Chapter 3. Exercises 00:01:40
  16. Chapter 4. Writing server applications with GenServer 00:03:12
  17. Chapter 4. OTP behaviors 00:04:39
  18. Chapter 4. Hands-on OTP: revisiting Metex 00:04:52
  19. Chapter 4. Callbacks 1st part 00:08:04
  20. Chapter 4. Callbacks 2nd part 00:09:42
  21. Chapter 4. Reflecting on chapter 3’s Metex 00:01:57
  22. Chapter 4. Exercise 00:02:45
  23. Chapter 5. Concurrent error-handling and fault tolerance with links, monitors, and processes 00:08:07
  24. Chapter 5. Setting up the ring 00:05:04
  25. Chapter 5. Linking a terminated/nonexistent process 00:05:27
  26. Chapter 5. Monitors 00:02:03
  27. Chapter 5. Implementing a supervisor 00:10:35
  28. Chapter 5. Handling crashes 00:03:46
  29. Chapter 6. Fault tolerance with Supervisors 00:05:53
  30. Chapter 6. A sample run of Pooly 00:04:44
  31. Chapter 6. Implementing the worker Supervisor 00:06:40
  32. Chapter 6. max_restarts and max_seconds 00:04:42
  33. Chapter 6. Implementing the server: the brains of the operation 00:08:49
  34. Chapter 6. Prepopulating the worker Supervisor with workers 00:08:40
  35. Chapter 6. Checking out a worker 00:03:24
  36. Chapter 6. Implementing the top-level Supervisor 00:05:08
  37. Chapter 6. Exercises 00:02:17
  38. Chapter 7. Completing the worker-pool application 00:06:53
  39. Chapter 7. Adding the top-level Supervisor 00:05:44
  40. Chapter 7. Adding the brains for the pool 00:05:29
  41. Chapter 7. Version 4: implementing overflowing and queuing 00:05:02
  42. Chapter 7. Queuing worker processes 00:08:59
  43. Chapter 7. Exercises 00:02:41
  44. Chapter 8. Supervising Tasks with Tasks.Supervisor 00:05:48
  45. Chapter 8. Distribution and load balancing 00:03:11
  46. Chapter 8. Distribution for load balancing 00:08:31
  47. Chapter 8. Introducing Tasks 00:03:45
  48. Chapter 8. Onward to distribution! 00:04:42
  49. Chapter 8. Remotely executing functions 00:02:39
  50. Chapter 8. Making Blitzy distributed 00:05:57
  51. Chapter 9. Distribution and fault tolerance 00:07:07
  52. Chapter 9. An overview of failover and takeover in Chucky 00:08:07
  53. Chapter 9. Failover and takeover in action 00:02:31
  54. Chapter 9. Connecting nodes in a LAN, cookies, and security 00:05:46
  55. Chapter 10. Dialyzer and type specifications 00:03:41
  56. Chapter 10. Success typings 00:05:39
  57. Chapter 10. Getting started with Dialyzer 00:03:06
  58. Chapter 10. Software discrepancies that Dialyzer can detect 00:06:51
  59. Chapter 10. Type specifications 00:05:58
  60. Chapter 10. Writing your own types 00:06:13
  61. Chapter 11. Property-based and concurrency testing 00:07:41
  62. Chapter 11. Patterns for designing properties 00:05:56
  63. Chapter 11. Generators 00:03:18
  64. Chapter 11. Creating custom generators 00:08:10
  65. Chapter 11. Recursive generators 00:06:16
  66. Chapter 11. Concurrency testing with Concuerror 00:08:58
  67. Chapter 11. Reading Concuerror’s output 00:06:29
  68. Chapter 11. Resources 00:03:22