[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › [local‑first/Storage](https://evolu.dev/docs/api-reference/common/local-first/Storage) › createBaseSqliteStorage

```ts
function createBaseSqliteStorage(deps: SqliteStorageDeps): BaseSqliteStorage;
```

Defined in: [packages/common/src/local-first/Storage.ts:383](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/local-first/Storage.ts#L383)

Creates a [BaseSqliteStorage](https://evolu.dev/docs/api-reference/common/local-first/Storage/interfaces/BaseSqliteStorage) implementation.

# Stateless Design

This implementation is fully stateless - it requires no in-memory state
between invocations. All necessary metadata (timestamp bounds for insertion
strategy optimization) is persisted in the evolu_usage table. This makes
Evolu Relay suitable for stateless serverless environments like AWS Lambda,
Cloudflare Workers with Durable Objects, and other platforms where memory
doesn't persist between requests. While not extensively tested in all these
environments yet, the stateless design should work well across them.