CARRIER_ prefix. All configuration settings are defined when starting the application.
SQS Configuration
Settings for connecting to and receiving messages from Amazon SQS.The endpoint for the SQS service. For AWS, use regional endpoints like
https://sqs.us-west-2.amazonaws.com.For local development with SQS-compatible services, use custom endpoints like http://sqs:9324.See AWS SQS Service Endpoints for official endpoints.The name of the SQS queue to receive messages from.Example:
carrier-demo or my-webhook-queueThe number of messages each SQS receiver will request from SQS in a single batch.Valid range: 1-10 (SQS maximum)Note: All webhooks are transmitted one message per HTTP request, regardless of batch size.Example:
10 (request maximum messages per poll)The number of concurrent SQS receivers requesting messages from SQS.Each receiver runs independently and polls the queue in parallel.Example:
3 (run three concurrent receivers)The number of concurrent workers transmitting messages as webhooks for each receiver.Common pattern: Set this equal to
CARRIER_SQS_BATCH_SIZE to transmit all messages in a batch in parallel.Example: 10 (process all messages in batch concurrently)Webhook Configuration
Settings for transmitting messages to webhook endpoints.The full URL where webhooks will be sent via HTTP POST.Include the complete path: protocol, host, port, and path.Examples:
http://localhost:9000/webhookhttp://worker:8080/v1/eventshttps://api.example.com/webhooks/receive
The timeout for webhook HTTP requests.Uses Go’s duration format. See time.ParseDuration.Examples:
30s(30 seconds)2m(2 minutes)500ms(500 milliseconds)
The default
Content-Type header value for webhook requests.This can be overridden per-message using the Body.ContentType SQS message attribute.Examples:application/jsonapplication/xmltext/plain
When set to
true, disables TLS certificate verification for HTTPS webhook endpoints.Warning: Only use this for development/testing. Never use in production.Example: trueHealth Check Configuration
Settings for monitoring webhook endpoint availability.When set, enables health check functionality for the webhook endpoint.Carrier will wait for this endpoint to be online before processing messages. If the endpoint goes offline, Carrier will exit.Benefits:
- Prevents message failures during webhook startup
- Avoids unnecessary dead letter queue messages
- Enables automatic pod restarts in Kubernetes
http://worker:9000/healthThe time interval between health checks.Uses Go’s duration format.Example:
30s (check every 30 seconds)The timeout for each health check request.Example:
5s (timeout after 5 seconds)The number of consecutive failed health checks before the webhook is determined to be offline.When this threshold is reached, Carrier will exit.Example:
3 (exit after 3 failed checks)Logging Configuration
Settings for log output and formatting.When set to
true, enables colorized log messages.Useful for local development in terminals or Docker environments.In production, use false for JSON-formatted logs.Example: trueWhen set to
true, enables periodic statistics log messages.Logs include:- Number of active goroutines
- Memory usage
trueThe interval between statistics log messages (when
CARRIER_ENABLE_STAT_LOG is enabled).Example: 60s (log stats every minute)Example Configurations
Local Development
Minimal configuration for local development with Docker Compose:Production Kubernetes
Optimized configuration for production deployment:High Throughput
Configuration for processing large message volumes:Performance Tip: Setting
CARRIER_SQS_RECEIVER_WORKERS equal to CARRIER_SQS_BATCH_SIZE allows all messages in a batch to be transmitted concurrently, maximizing throughput.