Skip to content
APAdam Probert
← All work

A high-concurrency multiplayer VR platform

Designing a notification system for a high-concurrency multiplayer platform

Chose a pragmatic long-polling and Redis design over a fashionable one, fitting real platform and delivery constraints.

Context

The situation

A high-concurrency multiplayer VR platform needed a notification system to push timely messages to large numbers of connected users, across regions, without destabilising the platform it plugged into.

Problem

What actually needed solving

The system had to deliver low-latency notifications with authentication, standardised message formats, connection limits, keepalive and health behaviour, feedback on undeliverable messages, multi-region operation, autoscaling, and observability, while being realistic to build and operate within the existing platform and timeline.

REGION ×N · AUTOSCALECLIENTSLONG-POLLEDGE · AUTHREDIS
FIG. · Clients reach a long-polling edge backed by Redis, replicated per region with autoscaling, pragmatic over elaborate.
Constraints

What I had to work within

  • High concurrency with real latency and scale expectations
  • Multi-region operation and autoscaling from the outset
  • An existing platform whose shape the design had to respect
  • A delivery timeline that ruled out the most elaborate options
Approach

How I moved it forward

  1. 01

    Explored several architectures (managed WebSockets, serverless components, queues, DynamoDB, long polling, and Redis) against the platform's real constraints.

  2. 02

    Weighed each against latency, scale, failure modes, and operational cost rather than novelty.

  3. 03

    Selected a long-polling and Redis proof of concept that fit the existing platform and could be delivered and operated realistically.

  4. 04

    Built the design around observability and clear failure behaviour, including feedback for undeliverable messages.

Key decisions

The trade-offs that mattered

  • Pragmatism over fashion

    The most complicated architecture is rarely the right one. Long polling plus Redis met the requirements and fit the team and platform that had to run it.

  • Design failure modes explicitly

    Keepalive, health, connection limits, and undeliverable-message feedback were first-class concerns, not afterthoughts.

  • Prove it with a focused PoC

    A proof of concept validated the approach against real constraints before committing to a full build.

Outcome

What changed

  • A pragmatic, operable design validated by a working proof of concept.
  • An architecture matched to the platform's real constraints rather than to trend.
  • Clear reasoning that let stakeholders trust the trade-offs made.
Lessons

What I took from it

  • Choosing the right solution often means declining the most impressive one.
  • Latency, scale, and failure modes are design inputs: decisions made without them are guesses.
Contact

Have a difficult, important problem?

I’m happiest where the problem is unclear, several teams need to work together, and the outcome actually matters. If that sounds like your situation, let’s talk.

  • Talk through a hard technical problem
  • Scope a platform, data, or distributed-systems build
  • Get a second opinion on an architecture or delivery plan
  • A role or engagement worth a conversation