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

ScenarioTypical DurationWhat Happens
Cluster migration~20–50msThe MPC committee migrates to a new datacenter cluster. In-flight orders are held and processed once the new cluster is active.
Node recoverySecondsOne 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 constraintsSeconds to minutesInternal 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

  1. Do not resubmit — If you receive code 1502, your order is queued and will be processed. Resubmitting creates a duplicate.
  2. Check system health — Use GET /health to check the current system status before placing orders in bulk.
  3. Handle 202 responses — Treat 202 Accepted as a success; the order will transition to its final state and you will receive the update via WebSocket (/ws/orders).
  4. Implement backoff for 1503 — If the matching engine is fully paused, retry with exponential backoff starting at 1 second.