Sobre el proyecto
Electric es un motor de sincronización de código abierto para Postgres, descrito como sincronización en tiempo real para Postgres y posicionado como una base para software moderno y rápido y agentes de IA que se ejecutan sobre datos locales en vivo. Se centra en la ruta de lectura: sincronizar datos desde Postgres hacia consumidores arbitrarios en lugar de escribir de vuelta en la base de datos.
El proyecto aborda problemas comunes de sincronización como la replicación parcial, el fan-out y la entrega de datos, para que los desarrolladores no tengan que construir su propia capa de sincronización. El protocolo de sincronización principal se expone como una API HTTP de bajo nivel, que según la documentación puede integrarse con CDN para una entrega de datos escalable.
La replicación parcial se configura usando Shapes, que definen qué subconjunto de datos se sincroniza. Los consumidores pueden usar la API HTTP directamente o trabajar a través de bibliotecas cliente e integraciones de frameworks, incluido un cliente TypeScript y un hook de React llamado useShape. También hay un paquete cliente de Elixir presente en el repositorio.
Para empezar se requiere una base de datos Postgres con replicación lógica habilitada, y luego ejecutar Electric delante de ella conectado mediante una DATABASE_URL. El README muestra un comando de Docker Compose desde la raíz del repositorio para levantar el stack, seguido de una solicitud curl al endpoint /v1/shape para comenzar a sincronizar una tabla, y un breve ejemplo de React usando useShape con parámetros table y where.
La API HTTP se define en una especificación OpenAPI almacenada en el repositorio. Electric también incluye un Phoenix LiveDashboard opcional para monitoreo en tiempo real de métricas de la VM, información de procesos y tablas ETS, habilitado mediante el establecimiento de una variable de entorno para el puerto del dashboard. El README advierte explícitamente que este endpoint del dashboard no está autenticado y debe restringirse en producción.
El desarrollo usa asdf para gestionar las versiones de Elixir, Erlang y Node.js, con instrucciones de configuración para macOS. El repositorio contiene suites de pruebas tanto para los componentes de Elixir como de TypeScript, con requisitos previos que incluyen un Postgres de Docker Compose configurado para replicación lógica. Se documentan comandos para ejecutar el servicio de sincronización de Elixir y las pruebas del cliente, las pruebas de los paquetes de TypeScript y los informes de cobertura. El proyecto está licenciado bajo Apache 2.0 y ofrece un Discord comunitario para soporte.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.