elixir-otp
OTP Patterns
Expert guidance for process design, supervision, and concurrency in Elixir/OTP.
The Golden Rule
Database is the source of truth for domain entities. Processes are for infrastructure.
Don't reach for a GenServer to hold domain state (users, orders, tasks). Use PostgreSQL. Use processes for:
- Connection pools
- Caches (ETS)
- Rate limiters
- PubSub / event buses
- Background workers
- Real-time session state
# ❌ Bad: GenServer for domain entity
defmodule MyApp.TaskServer do
More from hwatkins/my-skills
elixir-tdd
Test-driven development enforcement for Elixir and Phoenix. Requires failing tests before implementation. Use when implementing features, fixing bugs, or when code quality discipline is needed.
23spam-prevention
When the user needs to prevent spam signups, bot accounts, fake registrations, or abuse of signup/trial flows. Also use when mentioning "spam accounts," "fake signups," "bot registrations," "disposable emails," "signup abuse," or "trial fraud." For broader security concerns, see saas-security.
14rust-tdd
Test-driven development enforcement for Rust. Requires failing tests before implementation. Use when implementing features, fixing bugs, or when code quality discipline is needed.
5rust-core
Expert Rust development with ownership, borrowing, lifetimes, traits, error handling, and idiomatic patterns. Use for any Rust code.
4rust-async
Async Rust with Tokio, futures, concurrency patterns, channels, and performance. Use when building async services, networking, or concurrent Rust applications.
4elixir-ecto
Expert Ecto patterns for Elixir — changesets, Multi, composable queries, migrations, optimistic locking, multi-tenancy, and railway-oriented programming with `with`. Use when working with databases or data validation in Elixir.
2