Performance & Architecture
Mailiam is built for speed and scale, delivering sub-100ms form responses globally through modern cloud architecture.
Performance Metrics
Section titled “Performance Metrics”Response Times Measured
Section titled “Response Times ”| Operation | Average Response | 95th Percentile |
|---|---|---|
| Form Submission | < 50ms | < 100ms |
| Collection Lookup | < 20ms | < 40ms |
| Email Delivery | < 200ms | < 500ms |
| API Calls | < 30ms | < 60ms |
Throughput Production Tested
Section titled “Throughput ”- Forms: 10,000+ submissions/second per region
- Collections: 1,000+ concurrent collections
- API Requests: 50,000+ requests/second
- Email Processing: 1,000+ emails/second
Global Architecture
Section titled “Global Architecture”Edge Deployment
Section titled “Edge Deployment”Mailiam uses AWS’s global edge infrastructure for optimal performance:
graph TB User[User Submits Form] --> CF[CloudFront Edge] CF --> API[API Gateway + Lambda] API --> DDB[DynamoDB Global] API --> SES[Amazon SES]
CF --> |"< 50ms"| User
subgraph "Global Regions" API --> |Replicated| US[US East/West] API --> |Replicated| EU[Europe] API --> |Replicated| AP[Asia Pacific] endResponse Path Optimization
Section titled “Response Path Optimization”- Form Submission → CloudFront Edge (1-5ms)
- Authentication → Lambda@Edge (5-10ms)
- Validation → Regional Lambda (10-20ms)
- Database Write → DynamoDB (10-30ms)
- Email Queue → SES Async (5ms)
- Response → User (< 50ms total)
Performance Features
Section titled “Performance Features”Collection-Based Optimizations
Section titled “Collection-Based Optimizations”Collections provide several performance benefits:
- Namespace Caching: Collection settings cached at edge
- Batch Operations: Multiple forms deployed together
- Route Optimization: Faster
/f/{collection}/{form}resolution - Connection Reuse: Shared infrastructure per collection
Database Performance
Section titled “Database Performance”DynamoDB Global Tables:
- Single-digit millisecond latency
- Automatic multi-region replication
- On-demand scaling
- Global secondary indexes for fast lookups
Optimized Access Patterns:
// Fast collection + form lookupGET /collections/{slug}/forms/{formSlug}// Response time: ~5ms
// Efficient submission storagePUT /submissions/{id}// Write time: ~10msCaching Strategy
Section titled “Caching Strategy”Multi-Layer Caching:
- Edge Cache (CloudFront): Static assets, route mappings
- Lambda Cache: Collection configurations, form settings
- Database Cache: Hot data in DynamoDB Accelerator (DAX)
- Application Cache: Frequently accessed form metadata
Cache Invalidation:
- Automatic on configuration changes
- Manual via CLI:
mailiam cache clear - Graceful rollover during deployments
Scalability Patterns
Section titled “Scalability Patterns”Horizontal Scaling
Section titled “Horizontal Scaling”Auto-Scaling Triggers:
- CPU > 70% for 2 minutes
- Request rate > 1000 RPS
- Error rate > 1%
- Queue depth > 100 messages
Scaling Events:
Normal Load: 2 Lambda instances per regionMedium Load: 10-50 instances (auto-scale)High Load: 100+ instances (burst capacity)Peak Events: 1000+ instances (reserved capacity)Vertical Optimization
Section titled “Vertical Optimization”Lambda Configuration:
- Memory: 1024MB (optimal price/performance)
- Timeout: 30 seconds (forms), 5 minutes (batch operations)
- Reserved concurrency for critical operations
Database Optimization:
- Read/write capacity on-demand
- Global secondary indexes for query patterns
- Batch operations for bulk updates
Monitoring & Observability
Section titled “Monitoring & Observability”Real-Time Metrics
Section titled “Real-Time Metrics”CloudWatch Dashboards:
- Form submission rates per collection
- Response time percentiles
- Error rates by endpoint
- Email delivery status
Custom Metrics:
// Form performance trackingPUT /cloudwatch/metrics{ "namespace": "Mailiam/Forms", "metrics": [ {"name": "ResponseTime", "value": 45, "unit": "Milliseconds"}, {"name": "SubmissionRate", "value": 150, "unit": "Count/Second"} ]}Performance Debugging
Section titled “Performance Debugging”CLI Tools:
# Test form performancemailiam test performance /f/collection/form
# Analyze bottlenecksmailiam debug trace submission-id
# Regional performance comparisonmailiam test regions --form /f/collection/formDebug Headers:
X-Mailiam-Region: us-east-1X-Mailiam-Duration: 45msX-Mailiam-Cache: HITX-Mailiam-Trace-ID: abc123-def456Optimization Techniques
Section titled “Optimization Techniques”Form Design
Section titled “Form Design”Fast Forms:
<!-- Minimal fields for fastest processing --><form action="https://api.mailiam.dev/f/collection/form" method="POST"> <input name="email" type="email" required> <textarea name="message" required></textarea> <button type="submit">Send</button></form>Optimized JavaScript:
// Async submission with timeoutconst form = document.querySelector('form');form.addEventListener('submit', async (e) => { e.preventDefault();
const controller = new AbortController(); const timeoutId = setTimeout(() => controller.abort(), 5000);
try { const response = await fetch(form.action, { method: 'POST', body: new FormData(form), signal: controller.signal });
if (response.ok) { // Handle success quickly form.innerHTML = '<p>✅ Message sent!</p>'; } } catch (error) { // Graceful degradation form.innerHTML = '<p>⚠️ Please try again</p>'; } finally { clearTimeout(timeoutId); }});Collection Configuration
Section titled “Collection Configuration”Performance-Optimized Settings:
collections: mycompany: settings: # Higher rate limits for better UX rateLimit: 200
# Selective spam protection spamProtection: true
# Async email processing emailNotifications: true
forms: contact: settings: # Aggressive caching for high-traffic forms cacheTime: 300
# Batch processing for efficiency batchSize: 100Infrastructure Tuning
Section titled “Infrastructure Tuning”Regional Optimization:
# Deploy to optimal regionsmailiam deploy --regions us-east-1,eu-west-1,ap-southeast-1
# Enable performance modemailiam config set performance-mode enabled
# Allocate reserved capacitymailiam capacity reserve --forms 1000 --duration 24hBenchmarking
Section titled “Benchmarking”Load Testing
Section titled “Load Testing”Apache Bench Example:
# Test form submission performanceab -n 1000 -c 10 -p form-data.txt \ -T 'application/x-www-form-urlencoded' \ https://api.mailiam.dev/f/test/benchmark
# Results:# Requests per second: 2500+ RPS# 95th percentile: < 100ms# 99th percentile: < 200msK6 Load Test:
import http from 'k6/http';import { check } from 'k6';
export default function () { const formData = { email: 'test@example.com', message: 'Load test message' };
const response = http.post( 'https://api.mailiam.dev/f/collection/form', formData );
check(response, { 'status is 200': (r) => r.status === 200, 'response time < 100ms': (r) => r.timings.duration < 100, });}Performance Testing
Section titled “Performance Testing”CLI Performance Test:
# Comprehensive performance analysismailiam test performance --collection mycompany --duration 60s
# Output:# ✅ Average response time: 47ms# ✅ 95th percentile: 89ms# ✅ 99th percentile: 156ms# ✅ Error rate: 0.1%# ✅ Throughput: 2,847 RPSCost Optimization
Section titled “Cost Optimization”Efficient Usage Patterns
Section titled “Efficient Usage Patterns”Cost-Effective Configuration:
# Optimize for cost while maintaining performancecollections: budget-conscious: settings: # Conservative rate limits rateLimit: 50
# Efficient spam protection spamProtection: true
# Batch email delivery emailBatching: trueUsage Monitoring:
# Track usage and costsmailiam usage report --period last-monthmailiam costs breakdown --by-collectionScaling Economics
Section titled “Scaling Economics”| Usage Level | Cost/1000 Forms | Features Included |
|---|---|---|
| Starter | Free | Basic collections, 1K/month |
| Growth | $0.10 | Advanced features, 100K/month |
| Scale | $0.05 | Enterprise features, unlimited |
Regional Performance
Section titled “Regional Performance”Latency by Region
Section titled “Latency by Region”| Region | Form Response | Email Delivery |
|---|---|---|
| US East | 25ms | 150ms |
| US West | 35ms | 180ms |
| EU West | 30ms | 160ms |
| Asia Pacific | 45ms | 220ms |
Optimal Deployment
Section titled “Optimal Deployment”Multi-Region Strategy:
# Deploy to multiple regions for global performancemailiam deploy --strategy global
# Region-specific configurationmailiam config set region us-east-1 --primarymailiam config set region eu-west-1 --secondarymailiam config set region ap-southeast-1 --failoverChoose regions based on your user base for optimal performance.