Instant 1.0 – AI가 작성한 앱을 위한 백엔드 플랫폼
1 day ago
4
-
AI가 생성한 코드로 완전한 앱을 빌드할 수 있도록 설계된 오픈소스 백엔드 시스템으로, 실시간 동기화와 오프라인 모드를 기본 제공
- 구조는 Client SDK, Clojure 기반 백엔드, Postgres 멀티테넌트 데이터베이스로 구성되어, 수천 개의 앱을 동시에 운영 가능
- 앱 생성은 VM 없이 데이터베이스 행만 추가하는 방식으로, 수 밀리초 내에 백엔드가 완성되고 비활성 앱에는 비용이 발생하지 않음
-
Auth, File Storage, Presence, Streams 등 주요 서비스가 통합되어 있으며, AI 에이전트가 직접 앱 생성과 스키마 업데이트를 수행할 수 있음
- 4년에 걸쳐 개발된 이 시스템은 차세대 AI 앱 빌더를 위한 핵심 인프라로, GitHub와 Discord를 통해 공개 협업이 가능함
Instant 1.0의 구조와 설계
-
Instant 1.0은 AI가 코드를 작성하는 앱을 위한 완전한 백엔드 플랫폼으로, 오픈소스로 공개됨
- 핵심 구성은 Client SDK, Clojure 기반 백엔드, Postgres 기반 멀티테넌트 데이터베이스 세 부분으로 이루어짐
- 앱은 실시간 동기화, 오프라인 모드, 낙관적 업데이트를 기본 제공하며, 인증·파일 저장·Presence·Streams 등의 서비스가 통합됨
- 모든 앱은 별도 VM 없이 데이터베이스의 몇 개 행만 추가하여 생성되며, 수천 개의 앱을 동시에 운영 가능
- 전체 시스템은 4년에 걸쳐 개발되었으며, 차세대 AI 기반 앱 빌더를 위한 인프라로 설계됨
Demos
- Instant는 무제한 앱 생성, 실시간 동기화 엔진, 통합 서비스를 주요 특징으로 제공
- 앱은 ‘freeze’되지 않으며, VM 대신 데이터베이스 행만 추가해 수 밀리초 내에 백엔드가 완성됨
- 비활성 앱은 메모리나 컴퓨트 비용이 없고, 활성 시에도 수 KB 수준의 오버헤드만 발생
-
Sync Engine은 오프라인·멀티플레이어·낙관적 업데이트를 지원
- Linear, Notion, Figma와 같은 현대적 앱의 동작을 일반화해, 클라이언트에서 직접 쿼리와 트랜잭션을 수행
-
db.useQuery와 db.transact API로 프론트엔드에서 관계형 쿼리와 변경을 처리
-
추가 서비스로 Auth, File Storage, Presence, Streams를 통합 제공
- 파일은 데이터베이스 행으로 관리되어, S3 동기화나 백그라운드 워커 없이도 CASCADE 삭제 등 규칙 적용 가능
- Auth는 Magic Code, OAuth, Guest Auth를 지원하며, Presence로 온라인 사용자 표시 가능
- 모든 기능은 API 또는 CLI로 제어 가능하며, AI 에이전트가 직접 앱 생성·스키마 업데이트·권한 설정 수행 가능
-
npx create-instant-app 명령으로 NextJS, Bun, Vite 등 환경에 즉시 프로젝트 생성 가능
아키텍처 개요
- Instant의 구조는 Client SDK, Clojure Backend, Multi-Tenant Database로 구성
- Client SDK는 오프라인 쿼리와 낙관적 업데이트를 처리
- Clojure Backend는 실시간 쿼리 유지와 멀티테넌트 자원 관리 담당
- Postgres는 모든 앱 데이터를 단일 인스턴스에서 Triple Store 형태로 관리
Client SDK
- 설계 목표는 오프라인 동작과 낙관적 업데이트 지원
- IndexedDB를 사용해 브라우저 내 데이터 지속성 확보
-
Triple Store 구조로 데이터를 [entity, attribute, value] 형태로 저장
- Datalog 기반 쿼리 엔진을 구현해 클라이언트에서 직접 관계형 쿼리 수행
- SQLite보다 가볍고, 수십 줄의 코드로 구현 가능
-
Pending Queue를 통해 서버 승인 전 변경사항을 별도로 추적
- 변경 실패 시 큐에서 제거되어 자동 롤백
-
mutative 라이브러리로 불변 데이터 구조 유지
-
InstaQL은 GraphQL에서 영감을 받은 쿼리 언어로, JavaScript 객체 문법을 그대로 사용
-
Reactor는 IndexedDB, 서버 통신, 오프라인 상태, 실패 복구를 조정하는 핵심 상태 머신
- WebSocket을 통해 서버와 실시간 데이터 교환 수행
Clojure Backend
- 백엔드는 반응형 쿼리와 공정한 멀티테넌트 자원 분배를 목표로 설계
-
Query Store는 어떤 사용자가 어떤 쿼리를 구독 중인지 추적
- 불필요한 데이터베이스 부하를 줄이기 위해 Topics 개념을 도입
- Asana의 Luna, Figma의 LiveGraph에서 영감을 받아 쿼리를 주제 단위로 분류
-
Invalidator는 Postgres의 WAL(Write-Ahead Log) 을 모니터링하여 변경된 토픽을 감지
- 트랜잭션과 쿼리 토픽을 매칭해 필요한 쿼리만 갱신
- 효율성을 위해 트리형 인덱스 구조 사용
-
Grouped Queue는 앱별 서브큐를 두어 순서를 보장하면서 병렬 처리 가능
- 고트래픽 앱이 자원을 독점하지 않도록 균형 유지
-
Session Manager는 WebSocket 세션을 관리하며, 쿼리·권한·서비스 요청을 조정
-
Clojure와 JVM의 장점
- 실스레드 기반 동시성, 간결한 추상화, 풍부한 라이브러리 생태계
- Google CEL을 활용한 권한 언어 샌드박싱
- DSL 작성이 용이해 멀티테넌트 SQL 생성 자동화
멀티테넌트 데이터베이스
- 목표는 저비용 데이터베이스 생성과 관계형 구조 유지
- Postgres VM이나 스키마 분리 대신, 단일 triples 테이블을 사용
- 각 앱은 app_id로 논리적 분리
- 새로운 데이터베이스 생성은 몇 개의 행 추가로 완료
-
Triple Store 구조의 장점
- 컬럼 생성 시 테이블 락이 없고, 컬럼 삭제는 소프트 삭제로 즉시 복구 가능
-
Partial Indexes를 이용해 고유 제약조건과 효율적 쿼리 지원
-
column_unique 마커를 기반으로 부분 인덱스 생성
- 중복 슬러그 삽입 방지 및 빠른 조회 가능
-
Count-Min Sketches로 Postgres의 통계 손실 문제 해결
- EAV 패턴의 단점을 보완해 쿼리 플래너가 효율적 인덱스를 선택하도록 지원
-
Query Engine은 InstaQL을 SQL로 변환하고, Count-Min Sketch 통계를 활용해 최적화된 쿼리 플랜 생성
- Clojure로 작성되었으며, pg_hint_plan을 통해 Postgres에 힌트를 전달
결론
- Instant는 AI가 작성한 코드로 완전한 앱을 빌드할 수 있는 백엔드 인프라
- 실시간·오프라인·멀티테넌트 구조를 통합한 Postgres 기반 Triple Store 시스템
- 4년간의 개발 끝에 완성된 구조로, 수천 명의 개발자가 핵심 인프라로 사용 중
- 모든 코드와 문서는 GitHub에 공개되어 있으며, Discord 커뮤니티를 통해 협업 가능
-
Homepage
-
개발자
- Instant 1.0 – AI가 작성한 앱을 위한 백엔드 플랫폼