Skip to main content

Limits

Beta

This feature is in beta. Core behavior is stable, but some APIs or configuration may change before general availability.

Technical limits for EdgeBase Database. Limits marked configurable can be changed in edgebase.config.ts. All others are platform constraints.

Storage

LimitValueNotes
Single-instance DB block (default D1)10 GB / databaseCloudflare D1 database size limit
Dynamic DB block (DO-backed SQLite)10 GB / instanceSQLite-backed Durable Object storage limit
Docker / Node.jsDisk-boundLimited only by available disk space

Operations

LimitDefaultConfigurableNotes
Batch size (inserts + updates + deletes)500 per requestNoAll-or-nothing transaction via transactionSync()
batch-by-filter per iteration500 rowsNoSDK auto-repeats until processed === 0 (max 100 iterations)
insertMany chunk size500NoSDK auto-chunks; each chunk is an independent transaction
Rule evaluation timeout (Worker-level)50 msNoFail-closed — timeout = deny. Applies to insert/update/delete access rule checks evaluated in the Worker.
Rule evaluation timeout (DB-level)2 000 msNoFail-closed — timeout = deny. Applies to DB access rules evaluated in the Worker middleware (rules.ts) for read/list operations. The longer timeout accommodates cold-start latency.
OR filter conditions5 per .or() groupNo
Default page size20 rowsYeslimit query parameter
Max page sizeNo enforcement (default 20, recommended max 500)NoBatch operations enforce 500-item limit separately

Backend-Specific Cloudflare Limits

These apply when you deploy on Cloudflare Edge.

BackendLimitValueNotes
D1Queries per Worker invocation1,000Relevant to raw SQL or unusually chatty server-side flows
D1Simultaneous open connections per Worker invocation6Relevant to admin.d1() or custom SQL usage
D1 / DO SQLiteMax columns per table100Cloudflare SQLite platform limit
D1 / DO SQLiteMax row or BLOB size2 MBIncludes large JSON/text payloads
D1 / DO SQLiteMax SQL statement length100 KBMostly relevant to raw SQL and generated queries
D1 / DO SQLiteMax bound parameters per query100Mostly relevant to raw SQL
D1 / DO SQLiteMax LIKE / GLOB pattern length50 bytesInherited Cloudflare SQLite safeguard

Schema

LimitValueNotes
Auto fieldsid, createdAt, updatedAtAuto-injected if not defined; type override not allowed, only false to disable
ID formatUUID v7Client-specified IDs allowed
FTS tokenizertrigramSupports CJK languages; configured per table in fts field
Cross-DB-block JOINsNot supportedEach DB block is a separate SQLite database
Multi-statement DB block transactionsNot supportedUse batch APIs; DB block CRUD is not an exposed raw BEGIN/COMMIT surface
Destructive schema changesMigration requiredALTER TABLE DROP COLUMN, type changes, etc. require explicit migrations

Rate Limiting

GroupDefaultKeyConfigurable
db100 req / 60sIPYes
global10,000,000 req / 60sIPYes

Service Key requests bypass EdgeBase's app-level rate limits entirely.

That bypass behavior is the same across all Admin SDKs.

Self-hosting

When running on Docker or Node.js, Cloudflare-specific D1 and Durable Object storage ceilings do not apply. Storage is limited only by disk space. API-level limits such as batch size, default page size, and access-rule behavior remain the same.