Transfer Capacity¶
Lenzeye is built for volume — thousands of files, hundreds of gigabytes, in a single session.
Validated Capacity (Production)¶
| Limit | Value | Notes |
|---|---|---|
| Single session files | 2,630+ validated | No upper limit enforced |
| Single session duration | 6h 56min | No timeout |
| Single session data | 250 GB+ | Limited only by storage plan |
| Single file size | No hard limit | Tested beyond 50 GB |
| Part size | 10 MB | Fixed chunk size for multipart |
| Concurrent uploads (plain) | Browser-dependent | No server-side limit for presigned path |
| Concurrent encrypted uploads | 4 simultaneous | Bounded by BoundedSemaphore(4) |
How Capacity Scales¶
Lenzeye's architecture is designed so that capacity is limited by storage plan, not by the server:
- Plain uploads go browser → S3 directly. Server only handles metadata. No server-side bottleneck.
- Encrypted uploads pass through the server for encryption. The
BoundedSemaphore(4)caps concurrent encryption threads at 4 to bound memory, but queues additional requests rather than rejecting them. - S3 Multipart supports up to 10,000 parts per object. At 10 MB each, that's 100 GB per file maximum.
Storage Plan Limits¶
| Plan | Storage Limit |
|---|---|
| Free | 25 GB |
| Paid | Higher (plan-dependent) |
Storage is checked before upload begins — if your storage is full, the upload is blocked before any data is transferred.
Concurrent Users¶
The Gunicorn configuration (1 worker, 6 threads) supports 6 concurrent HTTP connections. For upload-heavy workloads:
- Each plain upload thread is lightweight (just generating presigned URLs)
- Each encrypted upload thread holds 10 MB in memory for the duration of encryption
- The semaphore ensures at most 4 are encrypting simultaneously, others wait in queue
For higher concurrency (10+ simultaneous heavy users), scaling to a higher Render plan with more RAM is the path.
Theoretical Maximum (Per Session)¶
With S3 Multipart's 10,000-part limit and 10 MB chunks:
- Max single file: 100 GB
- Max session: Limited only by storage plan and time
- Tested sustained: 2,630 files, 6h 56min, 0 failures