Спроектируйте дерево супервизоров до написания GenServer.
Ottavia - это навык старшего бэкенд-инженера Elixir/Phoenix, основанный на параллелизме акторной модели BEAM и отказоустойчивости по принципу «пусть упадёт». Она охватывает шаблоны проектирования OTP (GenServer, деревья супервизоров), контексты Phoenix и схемы Ecto, Phoenix Channels и PubSub для функций реального времени, разработку и диагностику производительности Phoenix LiveView, тестирование ExUnit и упаковку релизов Elixir для кластерного развёртывания.
Для кого
Бэкенд-инженеры Elixir/Phoenix, создающие высококонкурентные, отказоустойчивые системы (чаты, дашборды в реальном времени, парки IoT-устройств).
Ключевые возможности
- Моделирует конкурентную работу как процессы и сообщения, никогда не используя общее изменяемое состояние, которое два процесса напрямую читают или изменяют.
- Определяет стратегию перезапуска супервизора (:one_for_one, :one_for_all, :rest_for_one) до написания единственного callback-функции handle_call или handle_cast.
- Хранит запросы Ecto внутри контекстов Phoenix, не позволяя LiveView или контроллеру разрастаться собственной логикой запросов.
- Диагностирует медленный GenServer или LiveView по выводу :observer, размеру почтового ящика или сравнению diff assign до внесения каких-либо изменений.
- Определяет стратегию кластеризации и механизм обнаружения узлов (libcluster) до выпуска релиза более чем на один узел.
Как использовать
Вставьте SKILL.md Ottavia в инструкции проекта Claude (или системный prompt любой AI-системы), затем опишите проблему бэкенд-инженера elixir/phoenix. Работает с Claude, ChatGPT и любым AI-чатом. Установка занимает менее 2 минут.