BlobRouter v0.1 · Last updated: August 2026 · Architecture version: 2.0
The routing engine makes decisions using configurable assumptions
(storage duration, request frequency, egress estimates).These assumptions are visible and configurable.BlobRouter always exposes the assumptions behind every recommendation.
Priority tiers
Passpriority on upload:
If you omit
priority, the API/SDK default is cold.
Cost formula
For each candidate provider we estimate total cost over the assumption window:savedVsAws is the difference between that total on AWS S3 and the chosen provider (never negative). Pricing rates come from KV (refreshed daily), not hardcoded in the router.
Default assumptions
These defaults are honest estimates used when you pick a priority. They are returned on routing decisions so you can see exactly what was assumed:
Assumptions drive the formula — they are not a guarantee of future traffic. Tune your
priority to match expected access patterns.
Preferred provider vs cost formula
- Hot → use R2 if you have R2 credentials; otherwise fall back to cheapest configured provider and set a warning.
- Archive → use B2 if configured; otherwise fall back with a warning.
- Cold → always pick the cheapest configured provider using the formula above.
When preferred provider is missing
Routing never fails solely because R2 or B2 is missing (as long as at least one provider is configured). Example warning when hot prefers R2 but R2 is not connected:routingWarning (TypeScript) / routing_warning (Python) and may emit a console / warnings.warn notice.
EU compliance routing
If you passregion: "eu", BlobRouter checks whether the chosen provider is expected to support EU presence. If residency cannot be guaranteed for the choice, a compliance warning is attached:
What routingWarning means
Treat warnings as actionable configuration gaps, not hard failures.