Performance & Optimization
Invoker Analytics is built for speed. Learn about our recent performance improvements.
Recent Improvements (v1.6.0)
We've achieved a 70-85% performance improvement through comprehensive backend optimizations. Your analytics load faster, dashboards respond instantly, and the user experience is smoother than ever.
70-85% Performance Boost
Our latest optimizations dramatically reduce server load and response times:
- IP Geolocation Caching: 30-day Redis cache reduces external API calls by 95%
- Dashboard Consolidation: Single optimized API endpoint instead of 4 separate calls
- Request Deduplication: 60-second cache prevents duplicate queries, 75% reduction in database load
- PostgreSQL Query Optimization: Covering indexes and CTEs for faster data retrieval
- Redis Integration: High-performance caching layer for frequently accessed data
Skeleton Loading States
All analytics pages now feature professional skeleton loaders that improve perceived performance:
Performance Metrics
Here's what you can expect from Invoker Analytics:
- Average API Response Time: Less than 200ms (cached requests under 50ms)
- Dashboard Load Time: Under 300ms for full page render
- Time to Interactive: Less than 500ms
- Tracking Script Size: Less than 1KB gzipped
- Cache Hit Rate: 85%+ for repeated queries
Technical Architecture
Caching Strategy
We use a multi-layered caching approach:
- Redis Cache: 5-30 minutes for dashboard data, 30 days for geolocation lookups
- Browser Cache: Aggressive caching headers for static assets
- Database Query Results: Cached for repeated date range queries
- Computed Aggregates: Pre-calculated statistics updated in background jobs
Database Optimization
PostgreSQL-specific optimizations for lightning-fast queries:
- Covering Indexes: Indexes that include all columns needed for common queries
- Partial Indexes: Optimized indexes for filtered queries
- CONCURRENTLY Indexes: Zero-downtime index creation for production
- Common Table Expressions (CTEs): Efficient query composition
Real-time Polling
The real-time analytics view has been optimized:
- Polling interval increased from 10s to 30s (67% reduction in requests)
- Efficient database queries using time-based indexes
- Incremental updates instead of full refreshes
Best Practices for Performance
Use Date Filters Wisely
Narrow date ranges load faster than broad ones:
- Use "Today" or "Last 7 Days" for frequent checks
- Avoid unnecessarily long custom date ranges
- Cache is more effective with consistent date range selections
Leverage the Consolidated Dashboard
The main dashboard endpoint is optimized to fetch all data in one request:
- Overview stats (pageviews, visitors)
- Time-series data for charts
- Top pages and referrers
- All fetched in a single database query
Enable Browser Caching
Make sure your browser cache is enabled:
- Static assets are cached for 1 year
- Dashboard data is cached based on selected date range
- Hard refresh (Ctrl+Shift+R) if you need fresh data
Streaming Exports
For large datasets, we use streaming exports:
- Memory Efficient: Processes data in chunks instead of loading everything at once
- No Timeouts: Handles millions of records without server timeouts
- Fast Downloads: Starts downloading immediately while processing continues
Monitoring & Alerts
We continuously monitor our infrastructure:
- Real-time performance metrics and alerting
- Automatic scaling during traffic spikes
- Database query performance tracking
- Cache hit rate monitoring
- 99.9% uptime SLA for paid plans
Future Optimizations
We're continuously working on making Invoker Analytics even faster:
- GraphQL API for flexible data fetching
- Server-side rendering for instant page loads
- WebSocket connections for true real-time updates
- Edge caching for global low-latency access