ステゴカップ

タイピング99

https://github.com/tosaken1116/stego-cup

Next.js

Go

Kubernetes

Redis

GCP

テトリス99のようなタイピングゲームです! 同接99人に耐える?

土佐犬

やまと

Simo

くりち

推しアイデア

リアルタイム通信のサーバーをPub/Subを用いた、水平オートスケーリングを行い、同接99人に耐えうる?構成で作成しました!

作った背景

やまとくんを追い出すため

推し技術

Kubernetes, Pub/Sub, Websocket, PipCD, Redis, MySQL, Echo, Next.js, TtailwindCSS, GitHub Actions, Blender

プロジェクト詳細

アプリ

使用技術

フロントエンド

  • Next.js ( v15 )
  • TailwindCSS
  • TypeScript
  • Blender

バックエンド

  • Golang
  • github.com/labstack/echo
  • github.com/redis/go-redis
  • github.com/gorilla/websocket
  • cloud.google.com/go/cloudsqlconn
  • github.com/uptrace/bun

DB

  • Redis
  • MySQL (CloudSQL)

インフラ

  • GCP
  • Kubernetes
  • GitHub Actions
  • PipeCD

シーケンス図

image image *検討段階のものであり、実際とは異なる部分があります

インフラ構成図

image

工夫点

  • CI/CDを用いた自動デプロイ
  • terraformを用いたIAC
  • マイグレーションの自動化
  • Redis Pub/Subを用いた水平オートスケーリング
  • Redis Pub/SubとRedisによる高速なサーバー間状態共有の実現
  • スキーマ定義
  • 排他的処理による競合の排除
  • PRとレビューを行った!
  • 寝ずに頑張った!!

リポジトリ

土佐犬

@tosaken