Infrastructure & Reliability
Rynko is built on modern, scalable cloud infrastructure designed for reliability.
Cloud Infrastructure​
Rynko uses a multi-provider infrastructure for optimal performance and reliability:
Core Services​
| Component | Provider | Purpose |
|---|---|---|
| API Servers | Railway | Application hosting |
| Database | Railway PostgreSQL | Primary data store |
| Cache & Queues | Railway Redis | Session, caching, job queues |
| PDF Generation | PDFKit | Document rendering |
| Excel Generation | ExcelJS | Spreadsheet creation |
| File Storage | Cloudflare R2 | Generated documents, assets |
| CDN | Vercel Edge Network | Static asset delivery, frontend hosting |
| DNS | Cloudflare | Domain management, DDoS protection |
Region​
| Resource | Region | Notes |
|---|---|---|
| API & Database | US | All application services |
| File Storage | US | Cloudflare R2 |
Data Residency: Currently, all data is stored in the United States regardless of customer location. EU data residency is on our roadmap for future consideration.
High Availability​
Railway Deployment​
Rynko runs on Railway's managed infrastructure:
- API Servers: Containerized deployment with automatic restarts
- Database: Managed PostgreSQL with daily backups
- Redis: Managed Redis for caching and queues
Auto-Scaling​
Rynko can scale based on demand:
- API containers: Scale based on traffic
- Queue workers: Scale based on queue depth
- Database: Vertical scaling available as needed
Uptime Targets​
Availability Goals​
| Metric | Target | Notes |
|---|---|---|
| API Availability | 99.9% | Best effort |
| Document Generation | 99.9% | Via job queue |
| Dashboard | 99.5% | Via Vercel |
No SLA: Rynko does not currently offer Service Level Agreements (SLAs) or uptime credits. The targets above represent our operational goals, not contractual guarantees.
Disaster Recovery​
Recovery Objectives​
| Metric | Target | Description |
|---|---|---|
| RTO | < 4 hours | Recovery Time Objective |
| RPO | < 24 hours | Recovery Point Objective |
Backup Strategy​
Database Backups:
- Daily automated snapshots via Railway
- Point-in-time recovery available
- Backup retention as per Railway's policies
File Backups:
- Cloudflare R2 durability (99.999999999%)
- Object versioning available
Recovery Procedures​
| Scenario | Recovery Method | Expected Time |
|---|---|---|
| Container failure | Automatic restart | < 1 minute |
| Database issue | Railway failover/restore | < 1 hour |
| Complete failure | Manual recovery from backups | < 4 hours |
Security Infrastructure​
Network Security​
- HTTPS Only: All traffic encrypted via TLS 1.2+
- Cloudflare Protection: DDoS mitigation and WAF
- Railway Isolation: Private networking between services
Incident Response​
- Detection: Error monitoring and alerts
- Triage: Engineering team assessment
- Mitigation: Immediate actions to restore service
- Communication: Direct customer notification if needed
- Resolution: Root cause fix
- Post-mortem: Incident review and prevention
No Status Page: Rynko does not currently have a public status page. For service inquiries, please contact support@rynko.dev.
Document Generation Infrastructure​
PDFKit (PDF Generation)​
Rynko uses PDFKit for PDF generation:
- Native PDF Generation: Direct PDF creation without browser dependency
- Memory Efficient: Streaming output for large documents
- Timeout Protection: 60-second limit per document
ExcelJS (Excel Generation)​
Rynko uses ExcelJS for Excel generation:
- Streaming: Large files generated efficiently
- Formula Support: Excel formulas preserved
- Timeout Protection: 120-second limit per workbook
Generation Performance​
| Metric | Target |
|---|---|
| PDF Generation | < 10 seconds |
| Excel Generation | < 15 seconds |
Queue Infrastructure​
BullMQ + Redis​
Document processing uses BullMQ queues backed by Redis:
Queue Configuration:
- Concurrency: 5 jobs per worker
- Retry: 3 attempts with exponential backoff
- Job retention: 7 days (completed), 30 days (failed)
Priorities:
- HIGH (1): Single document generation
- NORMAL (5): Standard batch jobs
- LOW (10): Large batch operations
Queue Monitoring​
Monitor queue health via the Dashboard under Settings → Queue Statistics.
Maintenance Windows​
Planned Maintenance​
Planned maintenance is scheduled during low-traffic periods when possible:
- Notice: Advance notification when feasible
- Impact: Usually zero-downtime deployments
Emergency Maintenance​
Emergency maintenance for critical security patches:
- Notice: As much as possible
- Communication: Direct notification to affected customers
Performance​
API Response Times​
| Endpoint | Target P95 |
|---|---|
POST /api/v1/documents/generate | < 500ms (job submission) |
GET /api/v1/documents/jobs | < 200ms |
GET /api/v1/templates | < 100ms |
Document Processing​
| Metric | Target |
|---|---|
| Queue to Generation Start | < 5 seconds (normal load) |
| PDF Generation | < 10 seconds |
| Excel Generation | < 15 seconds |
Network Addresses​
API Endpoints​
| Environment | URL |
|---|---|
| Production | https://api.rynko.dev |
Webhook Source IPs​
If you need to whitelist Rynko's webhook source IPs, contact support@rynko.dev for the current IP range.
IP addresses may change. We recommend using signature verification instead of IP whitelisting when possible.
Compliance Infrastructure​
Logging​
- Application Logs: Railway logging (retention varies)
- Audit Logs: Database storage
Data Residency​
| Region | Status | Notes |
|---|---|---|
| US | Active | All customer data |
| EU | Not available | All data stored in US |
EU Customers: Please note that all data, including data from EU customers, is currently stored and processed in the United States. If you have specific data residency requirements, please contact us to discuss your needs.
Questions?​
For infrastructure questions, contact:
- Technical Support: support@rynko.dev
- Security Inquiries: security@rynko.dev