Skip to content
Blog

Architecture

Scaling Distributed Systems for Real-Time Products

Lessons from building cloud-native backends, high-concurrency game services, and event-driven AWS workflows.

July 5, 2026 / 3 min read
Distributed SystemsBackendAWS
Phan Hoang Nguyen ยท Backend Engineer

Scaling isn't one problem โ€” it's a stack of them. Real-time traffic, background workflows, and internal tooling each scale differently, and the fastest way to make a system hard to operate is to pretend they're the same workload. The systems that held up best for me โ€” a high-concurrency game publishing platform, a hybrid e-commerce backend โ€” were the ones that drew clear boundaries early. ๐Ÿงฑ

Start with explicit load boundaries

Distributed systems get easier to operate when each service owns one responsibility with a measurable boundary. On the game publishing platform, real-time operations (200K+ monthly active users of live traffic) stayed on their own path, separate from the internal CMS and event-management workflows. That separation meant each path could be tuned โ€” and could fail โ€” independently:

  • Real-time services optimized for low latency and horizontal scale.
  • CMS / event workflows optimized for throughput and editorial correctness, not p99.
  • Internal tooling free to stay simple, because it never touched the hot path.

The split, drawn out:

mermaid
flowchart LR
    U[Players] --> RT[Real-time services<br/>Fastify ยท Redis]
    Ops[Marketing / Ops] --> CMS[Internal CMS +<br/>event management]
    RT --> DB[(PostgreSQL)]
    CMS --> DB
    RT -.metrics.-> CW[CloudWatch]
    CMS -.metrics.-> CW

Use managed infrastructure deliberately

Serverless is a lever, not a default. It pays off when traffic is bursty or idle-heavy and operational ownership fits the model; it works against you on steady high-throughput paths where per-request cost and cold starts add up. On the game platform, moving suitable services to Lambda, API Gateway, and S3 cut infrastructure cost by roughly a third. The e-commerce backend went hybrid instead โ€” serverless where traffic was spiky, containerized where it was steady:

Workload shapeBetter fitWhy
Bursty / idle-heavyLambda + API GatewayPay per use, scales to zero
Steady high-throughputContainers (ECS / EKS)Predictable cost, no cold starts
Large object I/OS3 + eventsCheap storage, decoupled processing

The point isn't "serverless good" โ€” it's matching each runtime to the traffic it actually serves.

Keep observability close to architecture

High-throughput systems need instrumentation before they need more abstraction. Across the AWS data and commerce workloads, CloudWatch, CloudTrail, and data-quality checks created the feedback loops that protected both reliability and cost โ€” catching a runaway Lambda, a slow query, or a late partition before it became a customer problem. Scale you can't see is scale you can't defend.

Keep reading