Об этом проекте
Electric — это открытый движок синхронизации для Postgres, описанный как синхронизация в реальном времени для Postgres и позиционируемый как основа для быстрого современного программного обеспечения и ИИ-агентов, работающих на живых локальных данных. Он фокусируется на пути чтения: синхронизация данных из Postgres в произвольных потребителей, а не запись обратно в базу данных.
Проект решает распространенные проблемы синхронизации, такие как частичная репликация, фан-аут и доставка данных, чтобы разработчикам не приходилось создавать собственный слой синхронизации. Основной протокол синхронизации представлен как низкоуровневый HTTP API, который, как отмечается в документации, может интегрироваться с CDN для масштабируемой доставки данных.
Частичная репликация настраивается с помощью Shapes, которые определяют, какое подмножество данных синхронизируется. Потребители могут использовать HTTP API напрямую или работать через клиентские библиотеки и интеграции с фреймворками, включая TypeScript-клиент и React-хук под названием useShape. В репозитории также присутствует клиентский пакет для Elixir.
Для начала работы требуется база данных Postgres с включенной логической репликацией, затем запуск Electric перед ней с подключением через DATABASE_URL. В README показана команда Docker Compose из корня репозитория для запуска стека, затем curl-запрос к конечной точке /v1/shape для начала синхронизации таблицы и короткий пример React с использованием useShape с параметрами table и where.
HTTP API определен в спецификации OpenAPI, хранящейся в репозитории. Electric также включает опциональную Phoenix LiveDashboard для мониторинга в реальном времени метрик VM, информации о процессах и таблиц ETS, которая включается установкой переменной окружения для порта панели. В README явно предупреждается, что эта конечная точка панели не аутентифицирована и должна быть ограничена в производственной среде.
Для разработки используется asdf для управления версиями Elixir, Erlang и Node.js, с инструкциями по настройке для macOS. Репозиторий содержит тестовые наборы для компонентов Elixir и TypeScript, с предварительными требованиями, включая Docker Compose Postgres, настроенный для логической репликации. Документированы команды для запуска тестов сервиса синхронизации Elixir и клиента, тестов пакетов TypeScript и отчетов о покрытии. Проект лицензирован под Apache 2.0 и предлагает сообщество Discord для поддержки.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.