All resources
Daily Learning · Building Microservices: Designing Fine-Grained Systems

How API Gateways Shape Communication in Microservices

Wednesday, 15 July 2026
How API Gateways Shape Communication in Microservices

🎯 Discover how Discord's use of API Gateways and WebSockets ensures efficient, scalable real-time communication across millions of users.

Step 1: The Basics of Service Communication

When creating digital services, especially real-time ones like chat applications, how services talk to each other is crucial. Consider it like a restaurant: the kitchen needs clear, efficient orders from the waitstaff to keep everything running smoothly.

What is a WebSocket?

A WebSocket is a way to open an ongoing connection between a client (like a chat app on your phone) and a server. Unlike traditional HTTP, which closes after each request, WebSockets keep the line open for continuous data flow. Think of it like a phone call instead of sending text messages back and forth.


Step 2: The Role of the API Gateway

Imagine you run a busy restaurant. Instead of having each server run into the kitchen separately, you have a manager who organizes orders and communicates with the chef. An API Gateway is that manager. It serves as a single point of entry for the client to access various backend services.

What Are Microservices?

Microservices are a way of splitting a big application into smaller, independent chunks that can be developed, deployed, and scaled independently. Each service is responsible for a specific task, like handling menu items or processing payments.


Step 3: How Discord Uses Gateways

Discord needed efficient real-time communication for millions of users. Instead of using traditional request-response methods like REST, which would be like sending a separate email for every chat message, they used WebSockets through an API Gateway.

Here's a simplified setup for how it works:

Client App
   │
   └─ WebSocket
        │
   Discord Gateway
        │
    Microservices

The Gateway manages communication between clients and all Discord's internal services. It ensures users get real-time notifications about messages, voice calls, and friend statuses without overwhelming the system.


Step 4: Managing Scale with Stateful Protocols

Now, let's delve deeper. When lots of users reconnect at once, it's like a sudden rush hour. Discord called this a "reconnect storm," which can act like a self-inflicted DDoS (Distributed Denial of Service) attack, where systems get overwhelmed by traffic.

What is an Opcode?

An Opcode is an operation code that tells a system what to do. It's like a cooking instruction in the restaurant—each Opcode has a specific role.

Discord's Gateway uses specific Opcodes to manage connections effectively:

  • Opcode 10 Hello: Tells the client how often to check in to keep the connection alive.
  • Opcode 1 Heartbeat: Keeps the connection active, like a handshake between client and server.
  • Opcode 2 Identify: Starts a new session for a user.
  • Opcode 6 Resume: Allows clients to pick up where they left off without restarting everything.

Here's a simple view:

Client Connects
   ├─ Hello (Opcode 10)
   ├─ Heartbeat (Opcode 1)
   ├─ Identify (Opcode 2)
   └─ Resume (Opcode 6)

Using these instructions helps Discord handle connections smartly and prevents the need to rebuild every user session from scratch.


Step 5: Advanced Mechanics - Sharding

Sharding is like dividing the restaurant into sections, each with its dedicated waitstaff.

Discord uses a sharding mechanism to manage traffic:

 
shard_id = (guild_id >> 22) % num_shards

What is Sharding?

Sharding means splitting data into pieces so that it can be managed and queried more easily. Each shard handles a subset of data or users, reducing the load on any single part of the system.

This approach helps keep Discord performant, even with millions of users.


The Core Lessons

  1. WebSockets and API Gateways are crucial for real-time, efficient service communication.
  2. Opcodes help manage and maintain connections effectively.
  3. Handling large-scale systems requires strategies like sharding to distribute load.
  4. Managing where and how services interact can prevent overwhelming systems and ensure smooth operation.
A well-designed API Gateway intelligently directs and manages traffic, making sure communication is real-time, efficient, and scalable.

Expanding your understanding of these systems can transform how you think about building and scaling complex applications.

Want this kind of thinking applied to your business?

Book a free 30-minute discovery call — we’ll show you your highest-value first automation, no jargon, no obligation.

Book a discovery call
How API Gateways Shape Communication in Microservices | Kingsmen Daily Learning