Реестр
Реестр — центральное хранилище конфигурации Wippy. Здесь живут все определения — точки входа, сервисы, ресурсы — и изменения реактивно распространяются по системе.
Реестр содержит записи — типизированные определения с уникальными ID:
app.api:get_user → HTTP-обработчикapp.workers:email_sender → Фоновый процессapp:database → Подключение к базе данныхapp:templates → Набор шаблоновКаждая запись имеет ID (формат namespace:name), kind, определяющий её обработчик, произвольные поля meta и специфичные для kind data.
Обработчики kind
Заголовок раздела «Обработчики kind»При добавлении записи её kind определяет, какой обработчик её обрабатывает. Обработчик валидирует конфигурацию и создаёт ресурсы среды исполнения — запись http.service запускает HTTP-сервер, function.lua создаёт пул функций, sql.database устанавливает пул соединений. См. Типы записей для доступных типов и Собственные типы записей для реализации обработчиков.
Живые обновления
Заголовок раздела «Живые обновления»Реестр поддерживает изменения во время работы — добавление, обновление или удаление записей на ходу. Изменения проходят через шину событий, где слушатели могут их валидировать или отклонять, а транзакции обеспечивают атомарность. История версий позволяет откат.
YAML-файлы определений — сериализованные снапшоты реестра, загружаемые при старте. См. модуль Registry для программного доступа.
См. также
Заголовок раздела «См. также»- Структура проекта — файлы определений
- Собственные типы записей — реализация обработчиков kind
- Модель процессов — как работают процессы