Limits
Last updated 29 October 2026
Check these when you size a database or plan how many to create: what one account, one database, one transaction and one machine can take.
| Limit | Value |
|---|---|
| Account | |
| Databases per account | 10000. For more, write to sales@tonbo.io. A database counts from its creation until its deletion completes, so databases being deleted still count. One created with an expiry is deleted within a minute after it passes (see Expiry). |
| Requests | At least 50 per second for each account in each region, shared by all of its databases and streams (see What “at least” means). A 429 carries Retry-After, and the package retries it. |
| Database | |
| Size | What fits in a snapshot of 256 MiB compressed. A larger database cannot publish snapshots, so its log, its storage charge and its cold start grow without bound. |
| Writers | One process at a time: the last one to open it (see When two instances run). |
| Region | One, fixed when the database is created (see Regions and URLs). |
| Name | 1 to 85 lowercase letters, digits, dots, underscores and hyphens, starting and ending with a letter or digit, without .., not starting with m., vol., s., session. or proc. and not streams or new. It is unique within the account and cannot be changed. |
| Transaction | |
| One transaction | 128 MiB of changed pages by default (URSULA_VFS_MAX_COMMIT_BYTES). A larger transaction fails with UrsulaWriteRefusedError and the kind too_large, commits nothing and leaves the database usable, so split it into smaller ones. A commit larger than the 8 MiB request body limit goes to Tonbo in parts. |
| Your machine | |
| Commits waiting for Tonbo | 64 MiB compressed by default (maxPendingBytes). Past it, writes fail with backlog_full and commit nothing until Tonbo takes the commits that wait. |
| Runtime | Node.js 22.19 or later on a prebuilt platform, with a local disk (see Requirements). |
| Opening | 30 seconds by default, and as long as its signal allows. |
What “at least” means
Each region serves an account through two gateways, and each counts the account’s requests on its own, so 50 a second is what an account gets for sure, and more when its requests spread across both. Every account has these values today. For higher ones, write to sales@tonbo.io.
How much one database can take
A database holds what fits a snapshot of 256 MiB compressed. It takes commits as fast as SQLite does on its machine, because a commit returns before it reaches Tonbo. Tonbo then takes the commits that wait in batches of up to 4 MiB, one batch at a time for each database (see Replication). A program that commits faster than its batches reach Tonbo builds up commits that wait, and once 64 MiB wait, its writes fail until they drain. Every batch is one request against the account’s rate in the region.
A larger database takes longer to open on a new machine, since the open downloads its latest snapshot (see Cold starts). More data, or more writers, than one database takes is many databases: an account holds up to 10,000, and their number does not change the price.