Free Tier Limits
Every Swisblade project runs with resource limits to ensure fair usage across the platform.
Compute
| Resource | Limit | Per |
|---|---|---|
| CPU | 0.5 vCPU | container |
| Memory | 512 MB | container |
| Disk | 1 GB | project |
Each container (API, worker, etc.) in your project gets up to 0.5 vCPU and 512 MB of RAM.
Networking
| Resource | Limit |
|---|---|
| Rate limit | 100 requests/second per public service |
| Burst | 200 requests |
When a client exceeds the rate limit, subsequent requests receive HTTP 429 Too Many Requests until the rate drops below the threshold.
Databases
PostgreSQL
| Resource | Limit |
|---|---|
| Max connections | 10 |
| Query timeout | 30 seconds |
| Storage | Shared (monitored) |
Queries exceeding 30 seconds are automatically cancelled.
MySQL
| Resource | Limit |
|---|---|
| Max connections | 10 |
| Query timeout | 30 seconds |
| Storage | Shared (monitored) |
Redis
| Resource | Limit |
|---|---|
| Max memory | 50 MB |
| Key prefix | Required (enforced) |
All keys must use the provided REDIS_KEY_PREFIX. Attempting to read/write keys outside your prefix is denied.
RabbitMQ
| Resource | Limit |
|---|---|
| Max connections | 5 |
| Max channels | 20 |
| Max queue length | 10,000 messages |
| Max queue size | 50 MB |
Observability
| Resource | Limit |
|---|---|
| Log retention | 24 hours |
| Log ingestion | 3 MB/s per stream |
| Trace retention | 24 hours |
| Trace sampling | 50 spans/second |
Trace sampling
To keep storage manageable, traces are sampled:
- Error traces are always retained (never dropped)
- Successful traces are sampled at up to 50 spans/second
- The sampling is deterministic — a trace is either fully kept or fully dropped
Quota enforcement
Resource usage is checked automatically every 5 minutes. If a project exceeds its quota:
| Resource | Action |
|---|---|
| PostgreSQL storage | Database set to read-only until usage drops |
| Redis memory | Write commands blocked until memory freed |
| RabbitMQ queue size | Publish blocked until messages consumed |
Your application will receive clear error messages when writes are blocked. Normal operation resumes automatically once usage falls below the limit.
Monitor your resource usage in the dashboard under Project → Overview to avoid hitting quota limits.