Реестр

Реестр — центральное хранилище конфигурации Wippy. Здесь живут все определения — точки входа, сервисы, ресурсы — и изменения реактивно распространяются по системе.

Записи

Реестр содержит записи — типизированные определения с уникальными ID:

app.api:get_user          → HTTP-обработчик
app.workers:email_sender  → Фоновый процесс
app:database              → Подключение к базе данных
app:templates             → Набор шаблонов

Каждая запись имеет ID (формат namespace:name), kind, определяющий её обработчик, произвольные поля meta и специфичные для kind data.

Обработчики kind

При добавлении записи её kind определяет, какой обработчик её обрабатывает. Обработчик валидирует конфигурацию и создаёт ресурсы среды исполнения — запись http.service запускает HTTP-сервер, function.lua создаёт пул функций, sql.database устанавливает пул соединений. См. Типы записей для доступных типов и Собственные типы записей для реализации обработчиков.

Живые обновления

Реестр поддерживает изменения во время работы — добавление, обновление или удаление записей на ходу. Изменения проходят через шину событий, где слушатели могут их валидировать или отклонять, а транзакции обеспечивают атомарность. История версий позволяет откат.

YAML-файлы определений — сериализованные снапшоты реестра, загружаемые при старте. См. модуль Registry для программного доступа.

См. также