프로젝트 소개

Electric은 Postgres용 오픈소스 동기화 엔진으로, Postgres용 실시간 동기화로 설명되며 빠르고 현대적인 소프트웨어와 로컬 실시간 데이터에서 실행되는 AI 에이전트를 위한 기반으로 자리 잡고 있습니다. 이는 읽기 경로에 초점을 맞춥니다: 데이터베이스에 다시 쓰는 대신 Postgres에서 임의의 소비자로 데이터를 동기화하는 것입니다. 이 프로젝트는 부분 복제, 팬아웃 및 데이터 전달과 같은 일반적인 동기화 문제를 해결하여 개발자가 자체 동기화 계층을 구축할 필요가 없도록 합니다. 핵심 동기화 프로토콜은 저수준 HTTP API로 노출되며, 문서는 확장 가능한 데이터 전달을 위해 CDN과 통합할 수 있다고 언급합니다. 부분 복제는 동기화할 데이터 하위 집합을 정의하는 Shapes를 사용하여 구성됩니다. 소비자는 HTTP API를 직접 사용하거나 TypeScript 클라이언트 및 useShape라는 React 훅을 포함한 클라이언트 라이브러리 및 프레임워크 통합을 통해 작업할 수 있습니다. Elixir 클라이언트 패키지도 저장소에 있습니다. 시작하려면 논리적 복제가 활성화된 Postgres 데이터베이스가 필요하며, 그런 다음 DATABASE_URL을 통해 연결된 Electric을 그 앞에서 실행합니다. README는 저장소 루트에서 Docker Compose 명령을 사용하여 스택을 시작하고, /v1/shape 엔드포인트에 curl 요청을 보내 테이블 동기화를 시작하며, table 및 where 매개변수를 사용하는 useShape를 사용한 짧은 React 예제를 보여줍니다. HTTP API는 저장소에 저장된 OpenAPI 사양으로 정의됩니다. Electric에는 또한 대시보드 포트에 대한 환경 변수를 설정하여 활성화되는 VM 메트릭, 프로세스 정보 및 ETS 테이블의 실시간 모니터링을 위한 선택적 Phoenix LiveDashboard가 포함됩니다. README는 이 대시보드 엔드포인트가 인증되지 않았으며 프로덕션에서 제한되어야 한다고 명시적으로 경고합니다. 개발은 Elixir, Erlang 및 Node.js 버전을 관리하기 위해 asdf를 사용하며 macOS용 설정 지침이 있습니다. 저장소에는 Elixir 및 TypeScript 구성 요소에 대한 테스트 스위트가 포함되어 있으며, 논리적 복제용으로 구성된 Docker Compose Postgres가 전제 조건입니다. Elixir 동기화 서비스 및 클라이언트 테스트, TypeScript 패키지 테스트 및 커버리지 보고서 실행 명령이 문서화되어 있습니다. 이 프로젝트는 Apache 2.0 라이선스로 제공되며 커뮤니티 Discord를 제공합니다.