Async Elixir
Overview
Welcome to Async Elixir
Welcome to the Async Elixir course, a comprehensive exploration of Elixir’s advanced concurrency features. This course is tailored for individuals with a foundational understanding of Elixir programming and a desire to elevate their expertise to the next level.
Course Overview
This course is your gateway to becoming proficient in Elixir’s asynchronous capabilities. Whether you’re an experienced developer expanding your skill set or a curious learner fascinated by concurrent programming, you’ll gain a deep understanding of Elixir’s powerful asynchronous features.
By the conclusion of this course, you will have developed a robust understanding of processes, OTP patterns, and the Elixir standard library’s utilization for effective process management. You’ll be well-equipped to apply these concepts confidently in real-world situations.
Key Topics Covered
-
In-Depth Process and Concurrency: Explore the intricate workings of Elixir processes and the art of achieving concurrency.
-
Essential Process Management Concepts: Learn vital concepts such as process linking, monitoring and more.
-
Abstractions for Resilience and Control: Navigate essential abstractions like GenServers, Supervisors, and core Elixir modules such as Task, Registry, and Agents.
-
Applied Learning with a Project: Put your knowledge into practice through a hands-on project, solidifying your grasp of asynchronous programming and process management.
Course Focus
-
Prerequisite Elixir Knowledge: This course assumes a foundational familiarity with Elixir’s syntax and concepts. It DOES NOT teach Elixir basics but instead focuses on the asynchronous capabilities of Elixir.
-
Core Concepts, Not Libraries: Our emphasis remains on core concepts. The course doesn’t cover libraries like Phoenix or Phoenix LiveView. Instead, it equips you with a strong foundation to comprehend such libraries more effectively.
Prerequisites
Before diving into the course, make sure you have the following:
- Installed Elixir
- Installed Livebook
- A basic understanding of Elixir syntax and the ability to write code in Elixir. If you need a refresher, you can review Elixir basics here.
Livebook is an excellent tool for learning Elixir and experimenting with its concepts. Learn more about Livebook here.
About me
I am a full-stack software engineer with four years of focused experience in Elixir programming. Over this period, I have actively engaged in various Elixir projects, extensively delved into Elixir literature, including books and blogs, and honed my skills in this powerful language. My fascination with Elixir’s process-oriented architecture has inspired me to condense my insights into this course.
Table of Contents
Part 1: Concurrency and Processes
Part 2: Processes
- 🔄 Chapter 2.1: Process Internals
- 🚀 Chapter 2.2: Process Basics
- 🔗 Chapter 2.3: Process Linking
- 💡 Chapter 2.4: Process Monitoring and Hibernation
- 🛌 Chapter 2.5: Group Leaders and Process Naming
Part 3: GenServer
- 🧪 Chapter 3.1: GenServer Introduction
- 🏗️ Chapter 3.2: Building a GenServer
- 🌐 Chapter 3.3: GenServer Examples
- 🔧 Chapter 3.4: Other GenServer Functions
Part 4: Registry Module
Part 5: Supervision
- 👥 Chapter 5.1: Supervisors Introduction
- 🔄 Chapter 5.2: Supervision Strategies
- 🔄 Chapter 5.3: Restart Strategies
- 🚀 Chapter 5.4: Introduction to Dynamic Supervisor
- 🗄️ Chapter 5.5: Partition Supervisor Example
- ⚖️ Chapter 5.6: Scaling with Dynamic Supervisor
Part 6: Project: Building a Download Manager
Part 7: Tasks
- ⚙️ Chapter 7.1: Introduction to Tasks
- 🔄 Chapter 7.2: Awaiting Tasks
- 🔀 Chapter 7.3: Task Async Stream
- 🛡️ Chapter 7.4: Supervised Tasks
Part 8: Agents
So without further ado, let’s get started… 🚀