Transfers¶
A transfer represents a single file being moved between two agents as part of a job execution.
Transfer Lifecycle¶
stateDiagram-v2
[*] --> Pending: Job triggered
Pending --> Running: Chunks streaming
Running --> Completed: All chunks + checksum OK
Running --> Failed: Error or timeout
Failed --> Pending: Retry
Completed --> [*]
Transfer Details¶
Each transfer tracks:
| Field | Description |
|---|---|
| ID | Unique transfer identifier |
| Job | Parent job |
| Filename | Name of the file being transferred |
| Size | Total file size |
| Status | pending, running, completed, failed |
| Source | Agent name and path |
| Destination | Agent name and path |
| Progress | Percentage complete |
| Speed | Current transfer speed (bytes/s) |
| Checksum | SHA-256 hash for integrity verification |
| Started At | When the transfer began |
| Completed At | When the transfer finished |
| Error | Error message (if failed) |
Chunked Transfer¶
Files are split into chunks (default 8 MB) for reliable transfer:
- Source agent reads a chunk from disk
- Chunk is compressed (zstd or LZ4)
- SHA-256 hash is computed per chunk
- Chunk is sent as a binary WebSocket frame (57-byte header + compressed data)
- Backend relays the chunk to the destination agent
- Destination agent verifies the hash, decompresses, and writes to disk
- After all chunks, the full file SHA-256 is verified
Compression¶
| Algorithm | Beschreibung |
|---|---|
| zstd | Standard — gute Balance aus Geschwindigkeit und Kompressionsrate |
| LZ4 | Ultra-schnell — ideal für LAN-Transfers mit geringer Latenz |
| none | Keine Kompression — für bereits komprimierte Dateien |
Retry Behavior¶
Failed chunks are automatically retried up to TRANSFER_MAX_RETRIES times (default: 3). If all retries fail, the transfer is marked as failed and the job reports an error.
Filtering Transfers¶
The transfer list supports filtering by:
- Status (pending, running, completed, failed)
- Job name
- Agent name
- Date range
- Filename
Bulk Operations¶
Select multiple transfers to:
- Retry — Re-run failed transfers
- Cancel — Cancel pending/running transfers