- Durable Execution을 구현하는 데 별도의 복잡한 인프라가 반드시 필요한 것은 아니며, 핵심은 워크플로우 상태를 안전하게 보존하는 것
- SQLite는 별도의 데이터베이스 서비스 없이 트랜잭션 기반의 영속적 상태를 제공하며, 네트워크 홉이나 추가 컨트롤 플레인 없이 워크플로우 진행 상태를 안전하게 유지
- Litestream을 활용해 SQLite 변경 사항을 S3 호환 오브젝트 스토리지로 비동기 스트리밍하면, 상태를 런타임에 가깝게 유지하면서도 백업·마이그레이션·검사 목적으로 복사 가능
- AI 에이전트처럼 버스트성·실험적 워크플로우에서는 각 에이전트가 독립된 소규모 SQLite 상태 단위를 가진 마이크로 VM 또는 컨테이너 구성이 단일 대형 공유 시스템보다 단순하고 저렴하며 장애 격리에 유리
- 고가용성이나 광범위한 공유 확장성이 필요한 경우 Postgres가 적합하지만, 많은 워크플로우 시스템은 초기에 그 수준의 인프라를 필요로 하지 않음
영속적 실행의 핵심
- 영속적 실행은 흔히 영속적 인프라가 필요한 것처럼 논의되지만, 실제로 중요한 것은 워크플로우 상태(workflow state) 이며 컴퓨트는 저렴하고 일회용으로 유지 가능
- Obelisk에서 워크플로우 진행 상태는 실행 로그(execution log) 에 저장되며, 영속화된 히스토리로부터 리플레이되고 액티비티는 재시도 가능
SQLite가 적합한 이유
- SQLite는 별도의 데이터베이스 서비스를 추가하지 않고도 트랜잭션 기반 영속 상태를 제공
- 네트워크 홉, 추가 컨트롤 플레인, 새로운 운영 부담 없이 워크플로우 진행 상태를 안전하게 유지 가능
- 많은 시스템에서 로컬 데이터베이스 파일이 정확히 적합한 수준의 인프라
Litestream으로 이식성 확보
- Litestream은 SQLite 변경 사항을 S3 호환 오브젝트 스토리지로 비동기 스트리밍하는 방식으로, 상태를 런타임 가까이 유지하면서 백업·마이그레이션·검사용 복사를 지원
- 주의사항: Litestream 복제는 비동기 방식이므로, SQLite 볼륨이 사라지기 전에 복사되지 않은 최신 로컬 쓰기는 복원 시 누락될 수 있음
- 다수의 AI 및 실험적 워크플로우에는 허용 가능한 수준이나, 고가용성 공유 데이터베이스와는 다른 모델
- 실용적 운영 모델: Obelisk 서버를 SQLite 데이터베이스와 함께 실행, Litestream으로 백업, 필요 시 옵저버가 데이터베이스 pull — 동일 파일을 로컬 리플레이·디버깅·에이전트 행동 분석에 재사용 가능
AI 에이전트에 특히 유리한 이유
- AI 에이전트 및 AI 생성 워크플로우는 버스트성·실험적 특성을 가지며, 에이전트 또는 테넌트별로 소규모 자기완결적 상태 단위를 갖는 것이 추론에 유리
- 마이크로 VM 또는 컨테이너 기반의 소형 서버 플릿에서 각각 독립된 SQLite 데이터베이스와 오브젝트 스토리지 백업을 운용하는 구성이, 하나의 대형 상시 공유 시스템보다 단순하고 저렴하며 장애 격리 측면에서 유리
Postgres를 써야 할 경우
- Obelisk는 Postgres도 지원하며, 고가용성, 광범위한 공유 확장성, 또는 네트워크 데이터베이스가 더 적합한 배포 특성이 필요한 경우에 선택
- 비동기 오브젝트 스토리지 복제가 원하는 내구성 모델이 아닌 경우에도 Postgres가 더 적합
- 많은 워크플로우 시스템은 초기 단계에서 상태가 실제로 요구하는 수준 이상의 인프라로 시작할 필요 없음
- 로컬 SQLite + Litestream S3 백업 + 저렴한 워커 조합만으로 최소 인프라의 영속적 시스템 구성 가능하며, AI 에이전트 환경에서 가장 합리적인 기본값일 수 있음