blnk.json) or environment variables. This guide covers all available configuration options.
Configuration Methods
Blnk supports two configuration approaches:JSON File
Create a
blnk.json file for structured, version-controlled configurationEnvironment Variables
Use
BLNK_* prefixed environment variables to override or replace JSON configEnvironment variables take precedence over
blnk.json settings. This allows you to use a base configuration file and override specific values per environment.Minimal Configuration
The minimum required configuration includes database and Redis connections:blnk.json (Minimal)
Complete Configuration Reference
Here’s a complete configuration file with all available options:blnk.json (Complete)
Configuration Sections
Server Configuration
Controls the API server behavior:Port number for the API server
Enable automatic SSL certificate provisioning via Let’s Encrypt
Domain name for SSL certificate (required if
ssl is true)Email for Let’s Encrypt notifications (required if
ssl is true)Path to store SSL certificates
Enable API key authentication for all endpoints
Secret key for signing API keys (required if
secure is true)Data Source Configuration
PostgreSQL database connection and pool settings:PostgreSQL connection stringFormat:
postgres://user:password@host:port/database?sslmode=disableMaximum number of open database connections
Maximum number of idle connections in the pool
Maximum lifetime of a connection in nanoseconds (1800000000000 = 30 minutes)
Maximum idle time for a connection in nanoseconds (300000000000 = 5 minutes)
Redis Configuration
Redis connection and pool settings for queues and caching:Redis connection stringFormat:
host:port or redis://user:password@host:port/dbSkip TLS certificate verification (useful for self-signed certificates)
Maximum number of socket connections
Minimum number of idle connections
Transaction Configuration
Controls transaction processing behavior:Maximum number of transactions to process in a single batch
Maximum number of transactions in the processing queue
Number of concurrent workers processing transactions
Duration to hold locks on balances during transaction processing (in nanoseconds)
Prefix for transaction indexing queues
Enable balance checks for queued transactions
Reconciliation Configuration
Settings for the reconciliation engine:Default reconciliation strategy:
one_to_one, one_to_many, or many_to_oneNumber of records to process before reporting progress
Maximum retry attempts for failed reconciliation operations
Delay between retry attempts in nanoseconds (5000000000 = 5 seconds)
Queue Configuration
Redis queue settings for background job processing:Redis queue name for transaction processing
Redis queue name for webhook delivery
Number of parallel processing queues
Number of concurrent webhook delivery workers
Port for worker monitoring and metrics
Rate Limiting
API rate limiting configuration:Maximum requests per second per IP
Burst capacity for rate limiter
Cleanup interval for expired rate limit entries (in seconds)
Identity Tokenization
PII encryption settings:32-character secret key for AES-256 encryption of PII data
Telemetry & Observability
Enable usage telemetry reporting
Enable OpenTelemetry tracing and metrics export
Deployment Scenarios
Local Development
blnk.json
Production with Docker Compose
blnk.json
Cloud Deployment (Managed Services)
blnk.json
Configuration Best Practices
Use Environment Variables for Secrets
Use Environment Variables for Secrets
Never commit secrets to version control. Use environment variable substitution:
Tune Connection Pools
Tune Connection Pools
Set database and Redis pool sizes based on your load:
- Light load: 10-25 connections
- Medium load: 25-100 connections
- Heavy load: 100-300 connections
Enable Observability in Production
Enable Observability in Production
Always enable observability in production to leverage distributed tracing:Point
OTEL_EXPORTER_OTLP_ENDPOINT to your observability backend (Jaeger, Grafana, etc.).Adjust Worker Counts
Adjust Worker Counts
Scale workers based on transaction volume:
- Low volume (<1000 txn/sec): 10-20 workers
- Medium volume (1000-10000 txn/sec): 20-50 workers
- High volume (>10000 txn/sec): 50-100+ workers
Validation
Blnk validates configuration on startup. Required fields:data_source.dns- Database connection is mandatoryredis.dns- Redis connection is mandatory
Next Steps
Quick Start
Create your first transaction with your configured instance
API Reference
Explore all available API endpoints