When sending high-frequency REST DELETE requests to the dadaemon API, the service may return an HTTP 503 Service Unavailable error. This behavior occurs because back-to-back API calls can overwhelm the system, causing temporary instability. This article provides steps to mitigate these errors by pacing requests and adjusting timeout settings.
DELETE calls return HTTP 503 errors.dadaemon but reverts to errors following bursts of DELETE activity.High-frequency, back-to-back REST DELETE requests can cause the Data Aggregator to exceed processing thresholds, leading to temporary service unavailability (503). Additionally, default Kafka metadata wait times may be too high, allowing requests to block system resources.
To resolve this issue, implement request pacing and optimize Kafka timeout settings:
Implement Request Pacing: Ensure that applications issuing REST DELETE calls implement a delay between requests. Avoid sending back-to-back requests. Pacing helps the dadaemon process manage the cleanup load without exhausting system resources.
Adjust Kafka Timeout Settings: Edit the Kafka producer configuration to reduce the time requests spend waiting for metadata, which allows requests to fail-fast rather than blocking the service:
/apps/IMDataAggregator/config/kafka.InventoryProducer.cfg in a text editor.max.block.ms=3000request.timeout.ms=5000Restart dadaemon: Restart the dadaemon service to apply the configuration updates: /etc/init.d/dadaemon restart
Verify: Monitor the REST API for 503 errors. The system should remain stable under the managed request flow.
dadaemon logs for additional error details.com.ca.im.odata.filters.OpenAPIRequestLimiterFilter.cfg file, as incorrect configuration here can also impact API performance.