What Are Domains?
A domain represents a target server or endpoint where your webhooks will be delivered. When you add a domain to HookPulse, you configure how webhook requests to that domain should be managed, including rate limiting and concurrency control settings.Concurrency Control
Concurrency control limits the number of simultaneous webhook requests that can be sent to a specific domain at any given time.How It Works
- When enabled, HookPulse maintains a queue of webhook requests
- Only a specified number of requests (
max_concurrent_jobs) are processed simultaneously - Additional requests wait in the queue until a slot becomes available
- This ensures your client server is never overwhelmed by too many concurrent connections
Benefits
- Protects Client Servers: Prevents overwhelming your client’s infrastructure with too many simultaneous requests
- Prevents Timeouts: Reduces the likelihood of connection timeouts and server errors
- Better Resource Management: Allows client servers to process requests at their optimal capacity
- Prevents Cascading Failures: Avoids situations where too many concurrent requests cause server crashes
Example Scenario
If your client server can handle 5 concurrent connections, settingmax_concurrent_jobs: 5 ensures HookPulse never sends more than 5 simultaneous requests, even if you have 100 webhooks queued.
Rate Limiting
Rate limiting controls the maximum number of webhook requests that can be sent to a domain per second.How It Works
- When enabled, HookPulse enforces a maximum requests-per-second limit (
max_requests_per_second) - Requests exceeding this limit are queued and sent at the allowed rate
- This creates a smooth, controlled flow of requests to your client server
Benefits
- Prevents Server Overload: Protects client servers from sudden spikes in request volume
- Complies with API Limits: Helps you stay within your client’s API rate limits
- Reduces Rejection Rates: Minimizes the chance of requests being rejected due to rate limit violations
- Smoother Traffic Patterns: Creates predictable, manageable traffic patterns
- Cost Optimization: Prevents unnecessary retries and failed requests
Example Scenario
If your client’s API allows 10 requests per second, settingmax_requests_per_second: 10 ensures HookPulse never exceeds this limit, even during high-traffic periods.
Enabling and Disabling Controls
Both concurrency control and rate limiting can be turned on or off independently for each domain:rate_limit_enabled: Set totrueto enable rate limiting,falseto disableconcurrency_control_enabled: Set totrueto enable concurrency control,falseto disable
When to Disable
You might disable these controls if:- Your client server has unlimited capacity
- You’re testing in a development environment
- You need maximum throughput and are confident in your infrastructure
When to Enable
Always enable these controls when:- Working with production systems
- Your client has documented rate limits
- You want to protect your client’s infrastructure
- You need predictable, controlled webhook delivery
Protection Benefits
For Your Infrastructure
- Prevents Backpressure: Rate limiting prevents your system from being overwhelmed by retry attempts
- Resource Efficiency: Concurrency control ensures optimal use of connection pools
- Cost Management: Reduces unnecessary API calls and bandwidth usage
For Client Servers
- Prevents Overload: Protects client infrastructure from being overwhelmed
- Maintains Performance: Ensures client servers can process requests efficiently
- Reduces Errors: Minimizes 429 (Too Many Requests) and 503 (Service Unavailable) errors
- Better User Experience: Prevents service degradation for end users
Configuration Best Practices
- Start Conservative: Begin with lower limits and increase based on monitoring
- Monitor Performance: Track success rates and adjust limits accordingly
- Match Client Limits: Set your limits slightly below your client’s documented limits
- Test in Staging: Validate your configuration in a staging environment first
- Review Regularly: Periodically review and adjust limits based on traffic patterns
Example Configuration
- Enables both rate limiting and concurrency control
- Allows up to 5 simultaneous requests
- Limits to 10 requests per second
- Protects both your infrastructure and the client server
Related APIs
- Add Domain - Configure a new domain with rate limiting and concurrency settings
- Get Domain Paginated - List all configured domains with pagination
- Get Domain UUID - Retrieve the UUID for a specific domain

