9P by neo 2023-09-21 | favorite | 댓글 2개
  • 클라우드의 Postgres와 로컬 SQLite 기반으로 반응형(Reactive), 실시간(Realtime), 로컬 퍼스트 앱을 개발하는 플랫폼
  • Local-First
    • 앱의 코드는 SQLite로 된 임베디드 DB랑 직접 통신하고, 데이터가 백그라운드에서 클라우드 Postgres 와 active-active 복제 방식으로 동적 동기화
    • 이를 통해서 멀티 유저 협업 및 Conflict-Free 가 가능하게 해줌
  • ElectricSQL 을 통해서 로컬 Postgres를 그대로 이용
  • 로컬 우선 데이터 접근을 활용하여 앱을 즉시 반응 및 일관되게 빠르게 만드는 것을 목표로 설계
  • 운영의 단순성을 제공하며, 간단하고 확장 가능한 복제 프로토콜에 표준화함으로써 백엔드 서비스의 다양성과 작업량을 줄임
  • 기존의 Postgres 기반 시스템과 호환되며 기존의 데이터 모델과 함께 작동

제가 서버 없이도 동작하는 것을 선호해서 클라이언트 위주의 앱을 만들었다가 뒤늦게 서버 연동이 필요해지면서, 액티브-액티브 동기화로 전환했던 케이스였습니다.

첫번째 서비스는 OT 개념을 도입해서 수동으로 구현했고, 두번째는 외부 솔루션을 찾다가 Couchbase를 선택했었는데요 (그때 PouchDB나 Realm 도 조사)...

결론은 왠만하면 하지 않는게 좋습니다. 데이터 관리가 안 됩니다 (Couchbase DB가 특이해서인 것도 있긴 하지만)

Hacker News 의견
  • ElectricSQL은 로컬 우선 앱을 위해 Postgres와 SQLite 사이의 액티브-액티브 동기화를 가능하게 하는 새로운 기술입니다.
  • 이 기술은 클라이언트 측 SQLite, 오픈 소스 CRDT/동기화 계층, 그리고 Postgres 사이의 연결을 관리하는 독특한 접근 방식으로 칭찬받았습니다.
  • ElectricSQL은 모든 데이터와 사용자 계정의 중앙 진실의 원천으로 Postgres 데이터베이스가 작동하게 하며, 각 사용자의 개인 콘텐츠는 자신의 SQLite 데이터베이스에 격리되어 동기화될 수 있습니다.
  • ElectricSQL이 실제 또는 큐레이션된 데이터의 일부를 사용하여 빠른 통합 테스트를 작성하는 CI 워크플로우에서 사용될 가능성이 있습니다.
  • ElectricSQL은 로컬 우선 앱의 부흥을 향한 중요한 한 걸음으로 간주되지만, 이 분야에서 극복해야 할 많은 도전이 여전히 있습니다.
  • ElectricSQL을 사용하는 애플리케이션의 일부 상태에 대해 종단간 암호화를 사용할 가능성에 대한 질문이 제기되었습니다.
  • 일부 사용자들은 CRDT와 함께 상태가 어떻게 되는지 이해하는 복잡성에 대해 우려를 표현하였으며, 이것이 어떻게 사용자에게 문제를 일으킬 수 있는지에 대해 말하였습니다.
  • ElectricSQL의 상업 모델에 대한 질문이 있으며, 이것이 전체 클라우드 서비스가 될 것인지 아니면 Elixir 컴포넌트만 호스팅할 것인지에 대해 의문이 있습니다.
  • 사용자들은 루트 데이터베이스로 다시 병합되는 변경 사항에 대한 검증 또는 인증에 대해 궁금해하며, ElectricSQL이 악의적인 클라이언트가 임의의 데이터 스트림을 루트 데이터베이스로 동기화하도록 보내는 가능성에 어떻게 대응하는지에 대해 궁금해합니다.
  • ElectricSQL은 PouchDB와 CouchDB와 같은 다른 솔루션과 비교되었으며, 사용자들은 새로운 기술을 시도해 보는 데 관심을 표현하였습니다.
  • ElectricSQL의 출시는 일반적으로 잘 받아들여졌으며, 많은 사용자들이 이 기술이 로컬 우선 소프트웨어에 대한 잠재력에 대해 흥분을 표현하였습니다.