elixir-otp

Build concurrent Elixir systems using OTP patterns like GenServer and Task.

Updated Feb 16, 2026
One-click install
npx skills add https://github.com/hwatkins/my-skills --skill elixir-otp-hwatkins
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: elixir-otp
Source: https://github.com/hwatkins/my-skills/tree/main/skills/elixir-otp
Command: npx skills add https://github.com/hwatkins/my-skills --skill elixir-otp-hwatkins

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

OTP patterns address the challenge of building robust, concurrent systems in Elixir by separating domain data from process state and offering resilient infrastructure primitives.

Core Features & Use Cases

  • GenServer for stateful infrastructure with request/response semantics, suitable for caches and session state.
  • Agent for simple state wrappers and tiny shared state like counters.
  • Task and Task.Supervisor for asynchronous work and parallel execution; Oban as a persistent background job system when needed.

Quick Start

Start by identifying infrastructure-bound responsibilities and implement a GenServer to manage that state while keeping domain data in PostgreSQL.

Frequently Asked Questions about elixir-otp

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
What is the best way to manage stateful infrastructure in Elixir without mixing domain data?

Use GenServer for stateful infrastructure like caches and session state, and use Agent for simple state wrappers and tiny shared state like counters, keeping domain data in PostgreSQL.

When should I use Oban instead of Task.Supervisor for background jobs in Elixir?

Use Task and Task.Supervisor for asynchronous work and parallel execution, but choose Oban when you need a persistent background job system in Elixir for reliable processing.

Does Elixir OTP provide specific patterns for building supervision trees and dynamic process lookup?

Elixir OTP provides supervision trees for resilient infrastructure primitives and supports dynamic process lookup, ensuring safe separation of concerns and process recovery.

Can I use Agent for simple shared state instead of GenServer in Elixir?

Use Agent for simple state wrappers and tiny shared state like counters, while GenServer is better suited for stateful infrastructure requiring request and response semantics.

How do I handle ETS and Oban usage for production-grade Elixir applications?

Production-grade Elixir applications use ETS for dynamic process lookup and caching, and Oban for persistent background jobs, following best practices for safe separation of concerns.