Database
Runlayer uses a robust, enterprise-grade database architecture with PostgreSQL as the primary data store and Redis for caching and session management.Database Architecture
PostgreSQL (Primary Database)
Redis (Cache & Sessions)
PostgreSQL Configuration
High Availability
- Multi-AZ Deployment: Automatic failover to standby instance
- Read Replicas: Optional read-only replicas for scaling
- Automated Backups: Point-in-time recovery with 35-day retention
- Maintenance Windows: Scheduled maintenance with minimal downtime
Performance Optimization
- Connection Pooling: PgBouncer for efficient connection management
- Query Optimization: Automated query performance insights
- Storage: GP3 SSD with configurable IOPS and throughput
- Monitoring: CloudWatch metrics and Performance Insights
Security
- Encryption at Rest: AES-256 encryption for all data
- Encryption in Transit: Configurable SSL/TLS enforcement via
force_sslparameter (defaults to optional) - Field-Level Encryption: Sensitive values such as OAuth access/refresh tokens and client secrets are additionally encrypted at the application level before being written to their columns (see the OAuth Broker FAQ)
- Network Isolation: Private subnets with security groups
- Access Control: IAM database authentication
- Transport Security: Aurora PostgreSQL supports both optional and mandatory SSL connections
- Parameter Groups: Custom parameter groups with configurable security policies
Redis Configuration
Caching Strategy
- Session Storage: User sessions and authentication tokens
- Application Cache: Frequently accessed data caching
- Rate Limiting: API rate limiting and throttling
- Background Jobs: Task queue and job processing
High Availability
- Cluster Mode: Multi-node cluster for high availability
- Automatic Failover: Seamless failover to replica nodes
- Backup and Restore: Automated snapshots and recovery
- Cross-AZ Replication: Data replication across availability zones
Database Schema
Core Tables
- Users: User accounts and profiles
- Organizations: Multi-tenant organization data
- Resources: Managed cloud resources
- Policies: Governance and access policies
- Audit Logs: Comprehensive audit trail
- Configurations: System and user configurations
Indexing Strategy
- Primary Keys: Optimized for fast lookups
- Foreign Keys: Referential integrity and join performance
- Composite Indexes: Multi-column indexes for complex queries
- Partial Indexes: Conditional indexes for specific use cases
Enterprise Database Services
For advanced database requirements, including:- Database Design Optimization - Schema design and query optimization
- Performance Tuning - Database performance analysis and tuning
- Scaling Strategy - Read replicas and sharding strategies
- Backup and Recovery - Custom backup and disaster recovery plans
- Security Hardening - Advanced database security configuration
- Compliance Support - Regulatory compliance and data governance
Enterprise Database Services
Contact our database experts for optimization, scaling, and advanced
configuration
Monitoring and Maintenance
Performance Monitoring
- Query Performance: Slow query analysis and optimization
- Resource Utilization: CPU, memory, and storage monitoring
- Connection Monitoring: Connection pool and session tracking
- Cache Hit Rates: Redis cache performance metrics
Automated Maintenance
- Backup Verification: Regular backup integrity testing
- Index Maintenance: Automated index optimization
- Statistics Updates: Query planner statistics refresh
- Log Rotation: Automated log management and archival
Connection Pool Configuration
Database Connection Pool Settings
The database connection pool is configurable to handle high-concurrency workloads. These settings control how the application manages database connections:ECS/Terraform Configuration
Configure connection pool settings in yourterraform.tfvars:
pool_size + max_overflow (e.g., 100 + 30 = 130 concurrent connections)
Helm Configuration
Configure connection pool settings in yourvalues.yaml:
Connection Pool Parameters
Sizing Guidelines
- Low Traffic: pool_size=20, max_overflow=20 (40 total connections)
- Medium Traffic: pool_size=100, max_overflow=30 (130 total connections)
- High Traffic: pool_size=100, max_overflow=100 (200 total connections)
SSL Connection Configuration
Database SSL Configuration
The RDS cluster SSL enforcement is configurable via theforce_ssl parameter in database_config:
force_ssl = 1 (SSL Required):
- All connections without SSL will be rejected
- Applications must include SSL parameters in connection strings
- Use
sslmode=requireor stronger in connection strings
force_ssl = 0 (SSL Optional - Default):
- Both SSL and non-SSL connections are accepted
- SSL is still recommended for security
- Applications can optionally use SSL parameters
Application Configuration
Connection Examples
Python (SQLAlchemy):SSL Certificate Download
AWS RDS uses Amazon-provided SSL certificates. Download the certificate bundle:sslmode=verify-full with the certificate bundle for maximum security.
Best Practices
- Regular Backups: Automated daily backups with point-in-time recovery
- Security Updates: Automated security patching during maintenance windows
- Performance Monitoring: Continuous monitoring with alerting
- Capacity Planning: Proactive scaling based on usage patterns
- Data Retention: Automated data archival and cleanup policies
- SSL Enforcement: Always use SSL connections with certificate validation in production