World Congress 2023 β€’ Sep 21, 2023

Scaling: from 0 to 20 million users

Josip Stuhli

To survive 1.7 million concurrent connections, SofaScore abandoned the cloud. Discover how migrating from AWS to bare-metal servers slashed their infrastructure costs to just 0.8% of revenue.

Pause
Mute Enter Fullscreen
#1 about 2 min

Overview of application scale and exponential growth

How an exponentially growing sports app handles billions of requests with a PHP backend.

#2 about 1 min

Surviving traffic spikes on a single shared server

A basic shared server setup crashes when overwhelmed by thousands of live users.

#3 about 2 min

Adding Memcached and experiencing cache stampede problems

Adding memory caching improved user capacity but led to backend crashes during cache expiration.

#4 about 2 min

Using proactive caching to compute data before expiration

Background workers recalculate and cache live data before expiration to prevent extreme database load.

#5 about 3 min

Scaling huge traffic spikes with static HTML files

Rendering pages as static files over FTP handles overwhelming server load before major sporting events.

#6 about 3 min

Migrating to AWS and utilizing Varnish for caching

Moving to AWS involves deploying stateless application images and using Varnish for request coalescing.

#7 about 2 min

Realizing the limitations of MongoDB for live statistics

Data type errors, poor analytics capabilities, and lack of locking plague the initial MongoDB deployment.

#8 about 2 min

Live migration to PostgreSQL for relational analytics features

Switching the primary database to PostgreSQL on the fly grants advanced SQL capabilities, foreign keys, and stability.

#9 about 2 min

Shifting caching layers in front of backend servers

Deploying load balancers and sharding techniques ensures cache efficiency and protects backend databases during upgrades.

#10 about 2 min

Moving from AWS to on-premise servers for cost reduction

Migrating out of the public cloud to private data center servers eliminates excessively high bandwidth pricing.

#11 about 2 min

Mitigating traffic spikes generated by real-time push notifications

Custom Cloudflare rules whitelist massive inbound traffic waves caused by millions of devices opening simultaneous push notifications.

#12 about 2 min

Monitoring application load and supplementing with virtual machines

Application performance monitoring tools reveal bottlenecks while dynamic virtual machines handle temporary capacity shortages.

#13 about 3 min

Utilizing global edge nodes and geo-routing strategies

Caching content at international edge nodes drastically decreases global load times for users outside the primary data center.

#14 about 1 min

Setting up bare-metal Kubernetes for multi-datacenter redundancies

On-premise Kubernetes deployments ease infrastructure updates and ensure failover safety after datacenters experience severe outages.

#15 about 2 min

Broadcasting lightning fast application updates using NATS messaging

Transitioning clients from long polling to NATS pub/sub networks delivers lightning fast dashboard updates.

#16 about 2 min

Powering machine learning models using ClickHouse database scale

The ClickHouse database efficiently stores and analyzes petabytes of analytical sports data locally at minimal hardware costs.

#17 about 2 min

Emphasizing statelessness, caching, and delayed processing architectures

Core scaling takeaways include keeping infrastructure stateless, personalizing cached data effectively, and actively queuing slow tasks.

#18 about 2 min

Handling metrics pipelines, geo-routing, and Kubernetes workload isolation

Monitoring live systems requires pipelines to InfluxDB, while stateful endpoints like databases remain outside the bare-metal Kubernetes cluster.

Matching moments

3:42 min

Managing high-traffic infrastructure without chasing technology hype

Josip Stuhli Josip Stuhli Β· Coffee With Developers

1:52 min

Boosting scale and lowering latency natively with NoSQL

Tim Faulkes Β· LIVE

1:38 min

Handling unexpected traffic spikes without proper load testing

Andreas Taranetz Andreas Taranetz Β· WWC 2024

4:36 min

Hiring passionate software engineers to tackle unprecedented scaling challenges

Dana Lawson Dana Lawson +1 Β· WWC Europe 2026

3:32 min

Overcoming traffic burst challenges in hyperscale web applications

Marco Plaul Marco Plaul +1 Β· WWC 2023

6:36 min

Overcoming scaling bottlenecks caused by commercial database limitations

Werner Vogels Werner Vogels Β· WWC 2025

Upcoming sessions on this topic

Open session

World Congress 2026 North America

How to generate business value through performance optimizations

Nikolai Sidiropulo

Software Engineer at Meta

Nikolai Sidiropulo
Open session

World Congress 2026 North America

Boring Failover: Predictable Region Recovery Across 5,000 Microservices

Garvit Kataria, Sahil Sabharwal

Garvit Kataria
Sahil Sabharwal
Open session

World Congress 2026 North America

KV Cache Is Not About Speed: It's About Surviving Inference Costs

David vonThenen

AI/ML Leader | Keynote Speaker | OSS Engineer & Developer Advocate | Agentic AI, Deep Learning, Production AI | Python, Go, C++

David vonThenen
Open session

World Congress 2026 North America

Run your agents in Kubernetes: Build once, deploy anywhere. But really?

Michal Salanci

Senior Systems Engineer at ESET Cybersecurity

Michal Salanci
Open session

World Congress 2026 North America

Offloading IoT State: Solving the Memory Crisis on Legacy Hardware

Pravin Nagare

Senior Software Engineer, Roku

Pravin Nagare
Open session

World Congress 2026 North America

public void saveMoney(AI): The Developer's Guide to Unit Economics

Hrushikesh Pokala

Senior Software Engineer Lead at Equifax

Hrushikesh Pokala