Глава 0: Архитектура системы
В Refinery используется надежная, распределенная архитектура для обеспечения стабильности и целостности данных в экосистеме Vibe. Эта архитектура разделяет хранение неизменяемых данных и управление длительными, сложными процессами.
Основные компоненты
PostgreSQL для целостности транзакций
Основной и неизменяемый источник данных в системе — это реестр Vibe, хранящийся в базе данных PostgreSQL. Все операции с Vibe (создание и изменение) выполняются как единые, неделимые транзакции. Это обеспечивает согласованность и безопасность данных.
Такая целостность транзакций гарантирует, что структура Vibe и их связи остаются правильными, даже когда с системой работает много пользователей одновременно. Ключевые операции, вроде базовой команды refine
, построены на этой надежной основе. База данных обеспечивает надежное хранение и удобный поиск данных. Это позволяет вести реестр Vibe как постоянный архив всех взаимодействий, который можно проверить в любой момент.
Temporal для надежных процессов
Для длительных операций, сохраняющих свое состояние, — в частности, для выполнения Process Vibes
— Refinery использует Temporal. Temporal управляет временными данными и сложной логикой процесса, обеспечивая его надежную работу даже в случае сбоев.
Когда выполняется Process Vibe
, запускается процесс в Temporal для выполнения заданных шагов. Temporal отвечает за надежное выполнение процесса, а его конечный результат — Vibe с решением (solution
) — сохраняется в базу данных PostgreSQL с помощью команды refine
.
Такое разделение задач очень важно:
- PostgreSQL — это система, где хранится «что»: неизменяемые факты и решения (
solutions
), представленные в виде Vibe. - Temporal — это система, где хранится «как»: надежное выполнение длительного процесса и его текущее состояние.
Такой подход с двумя системами позволяет Refinery выполнять сложные и длительные задачи, не нарушая целостность основного реестра Vibe. Он сочетает лучшие стороны управления данными с помощью транзакций и надежного управления процессами.