Open in app

Sign In

Write

Sign In

Sajjad Rad
Sajjad Rad

51 Followers

Home

About

Sep 3

How to strongly secure public APIs using HMAC

There is no general authentication method for all types of API. It depends on the API purpose. The API might provide sensitive services like managing values (money). Any mistake can make a mess with the users’ assets. …

Security

7 min read

How to strongly secure public APIs using HMAC
How to strongly secure public APIs using HMAC
Security

7 min read


Jun 19

Designing a Distributed System for an Online Multiplayer Game — Architecture (Part 3)
18
2

Sajjad Rad

The game nodes are some regular nodes in K8S clusters with a specific label.

The game nodes are some regular nodes in K8S clusters with a specific label. You can use node affinity or taint/toleration to schedule the game servers on the game nodes and also prevent scheduling other services (like game manager or database) on the game nodes. You can use Terraform to create these resources on the cloud providers. For autoscaling the game nodes (scale up the nodes if you get more traffic and vice versa), you can use the cluster autoscale feature on some cloud providers.

1 min read

1 min read


Nov 11, 2022

Designing a Distributed System for an Online Multiplayer Game — Security Patch (Part 9)

This is part number nine of the Garage series, you can access all parts at the end of this post. In this part, we will enhance the system's security. In the past architecture, the game manager generated a new asymmetric RSA key for each game and passed it to the…

Security

5 min read

Designing a Distributed System for an Online Multiplayer Game — Security Patch (Part 9)
Designing a Distributed System for an Online Multiplayer Game — Security Patch (Part 9)
Security

5 min read


Apr 2, 2022

Designing a Distributed System for an Online Multiplayer Game — CI/CD (Part 8)

This is part number eight of the Garage series, you can access all parts at the end of this post. Now we have a Kubernetes cluster and need to make a pipeline for continuous integration and continuous deployment (CI/CD). Continuous Integration (CI) Branch rules The main branch is protected and nobody can push to it…

Kubernetes

2 min read

Kubernetes

2 min read


Apr 2, 2022

Designing a Distributed System for an Online Multiplayer Game — Deployment (Part 7)

This is part number seven of the Garage series, you can access all parts at the end of this post. hmm, let’s get started to deploy all these applications. The game manager and the game server applications have been dockerized, and some Github Actions have been added to publish the…

Kubernetes

6 min read

Designing a Distributed System for an Online Multiplayer Game — Deployment (Part 7)
Designing a Distributed System for an Online Multiplayer Game — Deployment (Part 7)
Kubernetes

6 min read


Apr 2, 2022

Designing a Distributed System for an Online Multiplayer Game — Game Client (Part 6)

This is part number six of the Garage series, you can access all parts at the end of this post. I started my career by working as a freelancer windows application developer (C# and C++) about 12 years ago, after a while I start working for a game company that…

Unity

5 min read

Designing a Distributed System for an Online Multiplayer Game — Game Client (Part 6)
Designing a Distributed System for an Online Multiplayer Game — Game Client (Part 6)
Unity

5 min read


Apr 2, 2022

Designing a Distributed System for an Online Multiplayer Game — Game Server (Part 5–2)

This is part number five of the Garage series, you can access all parts at the end of this post. This part is more related to game development, we are going to implement the game mechanics and logic. Logic The game server simulates a drag car race. The gameplay is simple…

Game Server

3 min read

Designing a Distributed System for an Online Multiplayer Game — Game Server — Game Server (Part…
Designing a Distributed System for an Online Multiplayer Game — Game Server — Game Server (Part…
Game Server

3 min read


Apr 2, 2022

Designing a Distributed System for an Online Multiplayer Game — Game Server (Part 5–1)

This is part number five of the Garage series, you can access all parts at the end of this post. Before following up on the pipeline, we start with the game server architecture first. Networking There are two channels to communicate with the game server, the reliable channel to publish the…

Game Server

5 min read

Designing a Distributed System for an Online Multiplayer Game — Game Server (Part 5–1)
Designing a Distributed System for an Online Multiplayer Game — Game Server (Part 5–1)
Game Server

5 min read


Apr 2, 2022

Designing a Distributed System for an Online Multiplayer Game — Game Manager (Part 4)

This is part number four of the Garage series, you can access all parts at the end of this post. Our exciting journey has begun, we are going to design and describe each of the services in detail. Let’s start again with the sub-services of the game manager. Matchmaking I developed…

Distributed Systems

4 min read

Distributed Systems

4 min read


Apr 2, 2022

Designing a Distributed System for an Online Multiplayer Game — Architecture (Part 3)

This is part number thee of the Garage series, you can access all parts at the end of this post. This is the main part of engineering, we’re going to create a schematic model of our mental model for the whole system. …

Distributed Systems

3 min read

Designing a Distributed System for an Online Multiplayer Game — Architecture (Part 3)
Designing a Distributed System for an Online Multiplayer Game — Architecture (Part 3)
Distributed Systems

3 min read

Sajjad Rad

Sajjad Rad

51 Followers

Currently a software engineer, always an adventurer

Following
  • Marten Gartner

    Marten Gartner

  • Jaana Dogan

    Jaana Dogan

  • Distillery Reserves

    Distillery Reserves

  • Mahdi Taghizadeh

    Mahdi Taghizadeh

  • Arash

    Arash

See all (7)

Help

Status

Writers

Blog

Careers

Privacy

Terms

About

Text to speech

Teams