Architecture & Security
Pulsora is built on secure, scalable infrastructure designed to protect your analytics data while delivering fast, reliable performance globally.
Infrastructure Overview
Platform Stack
Pulsora runs on a modern cloud infrastructure:
- Application Layer: Laravel 12 (PHP 8.3)
- Database: PostgreSQL 17 with TimescaleDB for time-series data
- Cache: Redis for session management and rate limiting
- Queue: Redis-backed Laravel queues for async processing
- CDN: Cloudflare for global script distribution
- Hosting: AWS (US-East) and EU (Frankfurt) regions
High Availability
- Uptime SLA: 99.9% uptime guarantee
- Database backups: Continuous WAL archiving + daily snapshots
- Multi-AZ deployment: Failover within 60 seconds
- Zero-downtime deployments: Rolling updates with health checks
Data Residency
Pulsora offers regional data storage to comply with data sovereignty and privacy regulations.
Available Regions
EU Region (Frankfurt, Germany)
- For EU customers and those requiring GDPR-compliant EU storage
- All data stored exclusively on EU infrastructure
- No cross-border data transfers outside EU
- Full GDPR compliance with EU data residency
US Region (Virginia, USA)
- For US and global customers
- High-performance infrastructure optimized for global access
- CCPA-compliant storage
How Region Selection Works
- During signup: Choose your data region (EU or US)
- Account creation: Your account and all websites are pinned to that region
- Data isolation: Your data never leaves your chosen region
- No migration: Region cannot be changed after account creation (contact support for special cases)
What Stays in Your Region
All of your data:
- Pageviews and events
- Revenue records
- Visitor fingerprints (hashed)
- Session data
- Custom event properties
- Website metadata
What's global:
- CDN script delivery (Cloudflare global network)
- DNS resolution (Cloudflare)
- Marketing website (not your analytics data)
Security Infrastructure
Network Security
DDoS Protection:
- Cloudflare Enterprise DDoS mitigation
- Rate limiting at CDN edge (1000 req/min per IP)
- Application-level rate limiting (Redis-backed)
- Automatic bot detection and blocking
Firewall:
- Web Application Firewall (WAF) at edge
- IP allowlisting available for enterprise customers
- Automated threat detection and response
Encryption
Data in Transit:
- TLS 1.3 for all API connections
- HTTPS-only (HSTS enabled)
- Certificate pinning for mobile SDKs (coming soon)
Data at Rest:
- AES-256 encryption for database storage
- Encrypted backups
- Encrypted logs
API Security
Authentication:
- Public tokens (
pub_*) for client-side tracking (pageviews/events) - Secret tokens (
sec_*) for server-side operations (revenue tracking) - API keys for dashboard access (JWT-based)
Rate Limiting:
- Public API: 10,000 requests per hour per token
- Secret API: 1,000 requests per hour per token
- Dashboard API: 100 requests per minute per user
Token Security:
- Public tokens: Can only send events, cannot read data
- Secret tokens: Can send events + read limited data, cannot delete
- Tokens can be regenerated anytime from dashboard
Input Validation
All incoming data is validated and sanitized:
- URL validation and sanitization
- Event name restrictions (alphanumeric + underscore only)
- Property value size limits (1KB per property)
- Payload size limits (10KB per request)
Malicious payloads are rejected and logged for security review.
Data Storage & Retention
Database Architecture
TimescaleDB (PostgreSQL extension):
- Optimized for time-series analytics data
- Automatic data partitioning by time
- Continuous aggregates for fast queries
- Compression for long-term storage
Schema Design:
pageviewstable: URLs, referrers, timestampseventstable: Custom events with propertiessessionstable: Aggregated session datarevenuetable: Transaction records with attribution
Backup & Disaster Recovery
Backup Schedule:
- Continuous WAL (Write-Ahead Log) streaming
- Daily full database snapshots
- 30-day retention for point-in-time recovery
- Geo-redundant backup storage
Disaster Recovery:
- Recovery Time Objective (RTO): 1 hour
- Recovery Point Objective (RPO): 5 minutes
- Regular disaster recovery drills
- Automated failover to standby replicas
Data Lifecycle
Active Data:
- Queryable instantly in dashboard
- Optimized for fast aggregation queries
- Real-time updates (typically <5 seconds)
Historical Data:
- Compressed after 90 days
- Still queryable but slightly slower
- Retained indefinitely for active accounts
Deleted Data:
- Soft-deleted for 30 days (recoverable)
- Hard-deleted after 30 days (permanent)
- No backups retained after hard deletion
Compliance & Certifications
Current Compliance
✅ GDPR (General Data Protection Regulation)
- EU data residency available
- Pseudonymization via hashing
- Automatic data expiration
- No personal data collection
✅ CCPA (California Consumer Privacy Act)
- No personal information processed
- No data sale or sharing
- User rights respected by design
✅ PECR (Privacy and Electronic Communications Regulations)
- No cookies used
- No device storage
- Server-side processing only
Upcoming Certifications
🔄 SOC 2 Type II (Coming Soon)
- Security, Availability, Confidentiality controls
- Independent third-party audit
- Annual recertification
🔄 ISO 27001 (Coming Soon)
- Information security management
- Risk assessment and treatment
- Continuous improvement processes
Data Processing Agreements
DPA available upon request for enterprise customers:
- GDPR Article 28 compliant
- Data processing terms
- Security measures documentation
- Sub-processor list
Contact enterprise@pulsora.co to request a DPA.
Access Controls
Team Access
Role-based access control (RBAC):
- Owner: Full access, billing, team management
- Admin: Full analytics access, settings, integrations
- Member: Read-only analytics access
Audit Logging:
- All team actions logged (view, export, settings changes)
- Logs retained for 12 months
- Available in dashboard for owners/admins
Two-Factor Authentication
- Available for all accounts
- TOTP-based (compatible with Google Authenticator, Authy, 1Password)
- Backup codes provided
- Enforcement available for enterprise customers
Infrastructure Monitoring
System Health
- Uptime monitoring: Pingdom + internal monitors
- Performance monitoring: Laravel Telescope + custom metrics
- Error tracking: Flare for exception monitoring
- Log aggregation: Centralized logging with 90-day retention
Status Page
Real-time system status available at: status.pulsora.co
- Current uptime and incidents
- Scheduled maintenance windows
- Historical uptime data
- Subscribe to status updates
Privacy by Design
Every architectural decision prioritizes privacy:
- Server-side processing: No client-side fingerprinting
- Rotating identifiers: Automatic expiration via salt rotation
- No PII storage: IP + User Agent hashed immediately
- Minimal data collection: Only what's needed for analytics
- Regional isolation: Data doesn't cross regional boundaries
- No third-party tracking: Zero external data processors
Security Practices
Development Security
- Code reviews required for all changes
- Automated security scanning (Snyk)
- Dependency vulnerability monitoring
- Regular penetration testing
Operational Security
- Principle of least privilege for all access
- Multi-factor authentication required for production access
- Encrypted secrets management (AWS Secrets Manager)
- Regular security training for all engineers
Incident Response
Security incident process:
- Detection and triage (< 15 minutes)
- Impact assessment and containment (< 1 hour)
- Resolution and recovery (< 4 hours)
- Post-mortem and disclosure (< 48 hours)
Disclosure policy:
- Security incidents disclosed on status page
- Email notifications to affected customers
- Public post-mortem for significant incidents
Third-Party Services
Pulsora uses these third-party services (no analytics data shared):
- AWS: Cloud hosting and infrastructure
- Cloudflare: CDN and DDoS protection
- Postmark: Transactional emails
- Stripe: Payment processing
All third-party services are vetted for security and privacy compliance.
Responsible Disclosure
Found a security vulnerability? We appreciate responsible disclosure.
Report to: security@pulsora.co
What to include:
- Detailed description of vulnerability
- Steps to reproduce
- Potential impact assessment
- Your contact information
What happens next:
- Acknowledgment within 24 hours
- Investigation and validation within 7 days
- Fix deployed within 30 days (for valid issues)
- Public disclosure coordination (if requested)
Bug bounty: Coming soon
Enterprise Features
Need additional security or compliance features?
Available for enterprise customers:
- Custom data retention policies
- Dedicated infrastructure
- SLA with financial guarantees
- Priority support
- Custom DPA terms
- IP allowlisting
- SAML SSO
- Advanced audit logging
Contact enterprise@pulsora.co for enterprise pricing.
Questions About Security?
Is my data encrypted?
Yes. All data is encrypted in transit (TLS 1.3) and at rest (AES-256).
Can Pulsora employees see my analytics data?
Only for support purposes with your explicit permission. Access is logged and audited.
What happens if Pulsora shuts down?
You can export all your analytics data anytime. We'll provide 90 days notice and export tools if we shut down.
How do you handle GDPR data subject requests?
Because we don't collect personal data, typical GDPR requests don't apply. See Privacy & Compliance for details.
Do you share data with third parties?
No. Your analytics data stays on Pulsora infrastructure. We don't sell, share, or process your data with third parties.
Learn More
- How Pulsora Works - Complete technical architecture
- Privacy & Compliance - GDPR, CCPA, and privacy practices
Last updated: 2025-01-13
Questions? Contact security@pulsora.co