Jump to

Share directly to

Engineering

How to Scale Website Changes Across 100+ Pages Without Developers

Learn how enterprise teams can roll out consistent website updates across hundreds of pageswithout relying on developers, long release cycles, or full redesign projects.

For most enterprise organisations, making a single website update is manageable. Scaling that same update across 100+ pages, that’s where everything breaks down.

What should be a straightforward change—updating messaging, improving layouts, refining CTAs—quickly turns into a complex, time-consuming process involving multiple teams, approvals, and deployment cycles.

The result is simple:
Most improvements never get rolled out at scale.

The Scaling Problem

Enterprise websites aren’t just large—they’re deeply interconnected.

A typical organisation might have:

  • Hundreds of service pages

  • Multiple regional variations

  • Different teams managing different sections

  • Shared components used across dozens of templates

  • So when a change is needed, it’s rarely isolated.

Updating one page is easy.
Updating every instance of that pattern across the entire website is not.

Why Traditional Approaches Don’t Work

Most teams rely on one of two approaches:

1. Manual Updates

Teams update pages one by one, either directly in the CMS or through content teams.

This leads to:

  • Inconsistencies between pages

  • Missed updates

  • Significant time investment

  • High likelihood of human error

2. Development-Led Changes

Changes are implemented through developers, often at the component or template level.

This creates:

  • Long lead times

  • Dependency on engineering resources

  • Bottlenecks in prioritisation

  • Limited flexibility for marketing teams

Neither approach is designed for speed at scale.

The Real Issue: Lack of Systemisation

The core problem isn’t the size of the website.

It’s the lack of a system that allows changes to be:

  • Defined once

  • Applied consistently

  • Controlled centrally

  • Deployed instantly

Without this, every update becomes a new piece of work.

Instead of scaling effort, teams multiply it.

A Better Approach: Component-Level Control

The real-time update system consists of several interconnected components that work together to deliver seamless user experiences. The `ConnectionManager` service tracks all active WebSocket connections and maintains user session state, while the `UpdateDispatcher` handles the complex logic of routing updates to the correct recipients.

// Real-time dashboard update system with intelligent batching
class UpdateDispatcher {
  constructor() {
    this.redis = new Redis(process.env.REDIS_URL);
    this.batchConfig = {
      maxBatchSize: 100,
      maxWaitTime: 100, // milliseconds
      compressionThreshold: 1024 // bytes
    };
  }
// Real-time dashboard update system with intelligent batching
class UpdateDispatcher {
  constructor() {
    this.redis = new Redis(process.env.REDIS_URL);
    this.batchConfig = {
      maxBatchSize: 100,
      maxWaitTime: 100, // milliseconds
      compressionThreshold: 1024 // bytes
    };
  }
// Real-time dashboard update system with intelligent batching
class UpdateDispatcher {
  constructor() {
    this.redis = new Redis(process.env.REDIS_URL);
    this.batchConfig = {
      maxBatchSize: 100,
      maxWaitTime: 100, // milliseconds
      compressionThreshold: 1024 // bytes
    };
  }

Performance Optimizations

Achieving our target latency of sub-200ms required implementing several critical performance optimizations. These optimizations work together to minimize network overhead, reduce server processing time, and improve overall system throughput.

Intelligent Update Batching: Rather than sending individual data point updates, we group related changes by dashboard and time window. Updates that arrive within a 100ms window are automatically batched together, reducing the number of network requests while maintaining the perception of real-time updates. This approach reduced network traffic by up to 85% during peak usage periods.

Differential Data Transmission: Instead of sending complete datasets with each update, our system calculates and transmits only the differences between the current state and the previous state. This differential approach reduces payload sizes by up to 95% for typical business data, where only small portions of large datasets change between updates. We use efficient binary diff algorithms optimized for numerical data common in business intelligence applications.

Connection Pooling and Multiplexing: We maintain persistent WebSocket connections and reuse database connections wherever possible. Our ConnectionPool service manages thousands of concurrent database connections efficiently, while our WebSocketManager handles connection lifecycle events, automatic reconnection logic, and graceful degradation when clients experience network issues.

Multi-tier Caching Strategy: We implement a sophisticated caching hierarchy using Redis for hot data (frequently accessed dashboard state), Memcached for warm data (recent query results), and intelligent preloading for predicted user actions. Cache invalidation is handled through event-driven patterns that ensure data consistency while minimizing cache misses.

Connection Management

Managing thousands of concurrent connections while maintaining system stability required building robust fault tolerance mechanisms. Users might have multiple browser tabs open, mobile applications connected, shared dashboards viewed by team members, and various integration clients accessing the same data streams simultaneously.

Our ConnectionManager service implements sophisticated logic to track all these connections while ensuring updates reach every relevant endpoint without overwhelming the network or creating duplicate processing overhead. Each connection is tagged with metadata including user permissions, dashboard subscriptions, data source access rights, and client capabilities.

When connections are lost due to network issues, our system implements exponential backoff retry logic with jitter to prevent thundering herd problems. Missed updates during disconnection periods are queued and delivered when connections are re-established, ensuring users never lose critical data changes even during temporary network disruptions.

Monitoring and Observability

Operating a real-time system at scale requires comprehensive monitoring and observability. We track dozens of metrics including update latency percentiles, connection counts by geographic region, data processing throughput, error rates by component, cache hit ratios, and user engagement patterns.

Our monitoring stack uses Prometheus for metrics collection, Grafana for visualization, and custom alerting logic that notifies our engineering team when system performance degrades below acceptable thresholds. We maintain detailed dashboards showing real-time system health, allowing us to identify and resolve performance issues before they impact user experience.

Results

After six months of optimization and production hardening, our real-time update system consistently delivers exceptional performance across all key metrics. Dashboard updates now arrive with an average latency of 145ms, with 99% of updates delivered within 300ms even during peak traffic periods.

The system successfully handles peak loads of 50,000 concurrent WebSocket connections with minimal performance degradation. Memory usage per connection has been optimized to just 2.3KB, allowing us to maintain cost efficiency while scaling to support enterprise customers with thousands of simultaneous users. Database query performance remains consistent even with millions of data points being processed per minute.

Perhaps most importantly, user satisfaction with dashboard responsiveness has increased by 78% since implementing the real-time update system. Users report that Lumis now feels "magical" and "instantly responsive," creating the seamless experience we set out to deliver. The system's reliability has been exceptional, with 99.97% uptime over the past six months and zero data consistency issues reported by users.

Subscribe to get daily insights and company news straight to your inbox.

Ready to join the new way of web evolution?

Designed for enterprise teams. Built for global scale.