Description
In this course, you will :
- Understand how Elixir's concurrency works.
- Discover more about Elixir supervisors and GenServers.
- Understand how to use data processing pipelines.
- Learn how to use Elixir's Flow module.
- Learn how to create data ingestion pipelines.
Syllabus :
1. Easy Concurrency with the Task Module
- Introduction to Concurrency
- An Introduction to the Task Module
- Create the Playground
- Start Tasks and Retrieve Results
- Synchronous vs. Asynchronous Programs
- Retrieve a Task’s Results
- Use the await and yield Functions to Retrieve Results
- Stop a Task and Async Task
- Manage a Series of Tasks
- Parameters of the async_stream Function
- Link Processes
- Meet the Supervisor
- Use Task.Supervisor
- Understand the “Let It Crash” Philosophy
2. Long-Running Processes Using GenServer
- Long-running Processes and Starting GenServer
- GenServer Callbacks: init
- GenServer Callbacks: handle_continue and handle_call
- Genserver Callbacks: handle_cast
- GenServer Callbacks: handle_info
- GenServer Callbacks: terminate
- Make Improvements to Our GenServer
- The blueprint of our job-processing system
- How to Use Anonymous Functions
- Introduce Dynamic
- Supervisor
- Process Restart Values and Frequency
- Implement a Supervisor
- Supervisor Strategies
- Registry Processes
- Register New Processes and Query the Registry
- Limit Concurrency and Inspect the Supervisors
- Examine Running Processes and Stop the Supervisors
3. Data Processing Pipelines with GenStage
- Back-PressureIntroduce GenStage
- The Producer and Consumer
- Build the Data Processing Pipeline
- Understand Consumer Demand
- Revisiting the Producer
- Add More Consumers and Buffer Events
- Add Concurrency With Consumer
- Supervisor
- Create Multi-stage Data Pipelines
- Scale Up a Stage with Extra Processes
- Choose the Right Dispatcher
4. Process Collections with Flow
- Introduction to the Flow Library
- Read Files
- Improve Performance with Streams
- Run Streams Concurrently and Understand Flows
- The reduce Function
- Route Events with Partitions
- Group and Sort
- Windows and Triggers
- Get Snapshots from Slow-running or Infinite Flows
- Add Flow to a GenStage Pipeline
5. Data Ingestion Pipelines with Broadway
- Introduction to the Broadway Library
- Process Ticketing Events
- The Details of Broadway Callbacks
- Implement handle_message/3
- Implement prepare_messages/2
- Implement handle_failed/3
- Batch Messages
- Implement Batching and handle_batch/4
- Static Batching
- Use Dynamic Batching
- Adjust Batch Size and Timeout
- Use Gen
- Stage Producers
- Configure the Scraping Pipeline