AI-powered learning
Save this course
Designing Elixir Systems with OTP
Delve into designing Elixir projects with OTP, exploring the Erlang VM, Elixir data types, isolated processes, and integrating projects with PostgreSQL, culminating in a functional application.
149 Lessons
55h
Join 2.9 million developers at
Join 2.9 million developers at
LEARNING OBJECTIVES
- Strong understanding of the Open Telecom Platform (OTP) design environment
- Working knowledge of the various layers of Elixir built using OTP
- Deep familiarity with Elixir’s different data types, their pros, cons, and applications
- Hands-on experience with best practices for coding in Elixir
- Hands-on experience leveraging OTP GenServers in your application design
- Hands-on experience testing Elixir projects with a variety of testing techniques
Learning Roadmap
1.
Building Our Project in Layers
Building Our Project in Layers
Step through building Elixir projects with a layered approach for scalable, resilient systems.
Who Should Take this Course and Why?Introduction to Building ProjectsReimagining Design ChoicesChoosing Our LayersThinking Before We StartBeginning with the Right DatatypesCreating a Mix projectBuilding Our Functional CoreEstablishing Our BoundariesOTP, State, and the Functional CoreTesting Our CodePlanning Our LifecycleInvoking Our WorkersSummary: Building Our Project in LayersQuiz: Layering System for Designing Applications in Elixir
2.
Knowing Our Elixir Datatypes
Knowing Our Elixir Datatypes
Unpack the core of Elixir datatypes, including their efficient uses and limitations.
3.
Starting With the Right Data Layer
Starting With the Right Data Layer
10 Lessons
10 Lessons
Examine the importance of data structures, immutability, and access patterns in Elixir systems.
4.
Building Our Functional Core
Building Our Functional Core
13 Lessons
13 Lessons
Grasp the fundamentals of creating a functional core with modular, data-centric design principles.
5.
Testing Our Core
Testing Our Core
15 Lessons
15 Lessons
Take a closer look at testing Elixir systems, including setup functions, fixtures, and advanced techniques.
6.
Isolating Process Machinery in a Boundary
Isolating Process Machinery in a Boundary
23 Lessons
23 Lessons
Tackle state isolation, error handling, and data validation using GenServer and API layers.
7.
Customizing Our Lifecycle
Customizing Our Lifecycle
17 Lessons
17 Lessons
Master the lifecycle management of Elixir systems using OTP for robust process control.
8.
Invoking Our Workers
Invoking Our Workers
13 Lessons
13 Lessons
Sharpen your skills in managing concurrency, scalability, and worker lifecycle with Elixir.
9.
Assembling Our Components
Assembling Our Components
17 Lessons
17 Lessons
Unpack the core of integrating persistence, utilizing OTP dependencies, and organizing code for Elixir projects.
10.
Testing the Boundary
Testing the Boundary
12 Lessons
12 Lessons
Work your way through testing Elixir boundaries, focusing on API lifecycles and integration.
Certificate of Completion
Showcase your accomplishment by sharing your certificate of completion.
Complete more lessons to unlock your certificate
Developed by MAANG Engineers
ABOUT THIS COURSE
The Open Telecom Platform (OTP) is a process-oriented design environment that Elixir inherits from Erlang, the VM in which Elixir executes. This process-oriented design and communication framework make programming in Elixir a unique challenge.
In this course, you’ll learn about the design considerations needed to build and design Elixir projects effectively. You’ll learn in detail about the Erlang virtual machine and the project components. You’ll review Elixir data types to identify the correct data layer to build your project. You’ll then build a core program to make data transformations and extend your project functionality with isolated processes. Finally, you’ll assemble your components into a functional process within the OTP and test your application.
By the end of this course, you’ll be intimately familiar with the OTP environment and the data components of Elixir projects. You’ll be able to integrate your projects into other Elixir frameworks using a PostgreSQL database.
ABOUT THE AUTHOR
The Pragmatic Programmers
We create timely, practical books and learning resources on classic and cutting-edge topics to help you practice your craft and accelerate your career.
Trusted by 2.9 million developers working at companies
A
Anthony Walker
@_webarchitect_
E
Evan Dunbar
ML Engineer
S
Software Developer
Carlos Matias La Borde
S
Souvik Kundu
Front-end Developer
V
Vinay Krishnaiah
Software Developer
Built for 10x Developers
No Passive Learning
Learn by building with project-based lessons and in-browser code editor


Personalized Roadmaps
The platform adapts to your strengths & skills gaps as you go


Future-proof Your Career
Get hands-on with in-demand skills


AI Code Mentor
Write better code with AI feedback, smart debugging, and "Ask AI"




MAANG+ Interview Prep
AI Mock Interviews simulate every technical loop at top companies


Free Resources