Uploads and artifacts

The API body limit leaves room for a 50 MiB artifact encoded as base64 JSON. Build output is re-packed through the same pipeline, so these apply twice.

Runtime

Declaring less than 512 MiB does not shrink the guest — the runtime raises any serving microVM to that floor. Below roughly 256 MiB the Node runtime’s text pages no longer fit in the guest page cache and the guest spends its whole CPU quota re-reading them from the virtio disk.Firecracker faults guest memory in lazily, so a ceiling the app never touches costs the host nothing.

Object storage

maxSize is measured against the namespace after the write, so replacing an object does not charge for the copy it replaces.
The single-host nginx configuration sets client_max_body_size 20m, which bounds what a browser can upload through an app. The app’s own writes to storage go over the private link and are bounded by the 32 MiB object limit instead.

Databases

Statement size, parameter count, result rows, and result bytes are all bounded. Exceeding one returns RESOURCE_LIMIT_EXCEEDED rather than a truncated answer. Transactions are leased. One left open past the timeout is rolled back and its session reclaimed.

Access and traffic

Lifecycle

Builds

The build disk must hold node_modules.