System Status
Under normal operation, GoDark processes orders in sub-millisecond latency. In rare situations the system may enter a temporarily degraded state where orders are queued rather than processed immediately.
When Degradation Occurs
| Scenario | Typical Duration | What Happens |
|---|---|---|
| Cluster migration | ~20–50ms | The MPC committee migrates to a new datacenter cluster. In-flight orders are held and processed once the new cluster is active. |
| Node recovery | Seconds | One or more MPC nodes are recovering from a fault. The system continues operating (3-of-5 threshold) but may queue orders briefly if recovery affects throughput. |
| Resource constraints | Seconds to minutes | Internal cryptographic preprocessing resources are temporarily exhausted. Orders are queued until resources are replenished. |
How It Manifests
REST API
When the system is degraded, order placement returns HTTP 202 Accepted (instead of 200) with error code 1502:
{
"success": true,
"code": 1502,
"data": { "order_id": "123456789", "status": "queued" },
"message": "Order accepted and queued for processing",
"timestamp": "2026-01-15T10:30:00.123Z"
}
If the matching engine is fully paused, the response is HTTP 503 with error code 1503:
{
"success": false,
"code": 1503,
"message": "Matching engine temporarily unavailable. Retry after 1 second.",
"timestamp": "2026-01-15T10:30:00.123Z"
}
WebSocket
WebSocket order submissions may receive a queued status before transitioning to open, filled, or rejected:
{
"message_type": "queued",
"order_id": 123456789,
"account_id": "12345",
"symbol": "BTC-USDC"
}
Best Practices
- Do not resubmit — If you receive code
1502, your order is queued and will be processed. Resubmitting creates a duplicate. - Check system health — Use
GET /healthto check the current system status before placing orders in bulk. - Handle
202responses — Treat202 Acceptedas a success; the order will transition to its final state and you will receive the update via WebSocket (/ws/orders). - Implement backoff for
1503— If the matching engine is fully paused, retry with exponential backoff starting at 1 second.