# ポイ活アプリ(iOS/Android)のバックエンドapi・管理画面の作成・新機能開発
アジャイル・スクラム PdM 1名・デザイナー 1名・バックエンド 2〜4名・アプリ 4〜6名
## 使用技術
- Ruby (2.0から3.2までアップデート)・Ruby on Rails (3.2から4系までアップデート)
- Rspec, Sidekiq, graphql-ruby 他gem多数, MySQL, Redis, Fastly,AWS Athena
- さくらのクラウド上に構築したインスタンス群 (+手製オートスケールcron)
-> Docker + AWS ECS Fargate + ALB + Aurora にマイグレート
- NewRelic -> DataDog, CircleCI, GitHub
- 管理用データ閲覧画面 TypeScript/Next.js/React
## 概要
プロトタイプがそのまま本番化された状態のアプリに安定化施策を施しながら続々新機能を投入、増え続けるアクセスを捌きながらMAU30万人を捌くアプリに育つまでを経験。
サービスが拡大する中、AWSへの移行やGraphQLを導入。
### 開発例: データ登録APIのレスポンスタイムを半減させた
アプリで一番クリティカルなデータ登録APIが重く、ピークタイムにインフラを圧迫していました。
データ登録の結果としてポイント獲得の詳細はレスポンスで返却する必要があったので、ポイント付与**以外**の全ての処理をSidekiqに避難させました。
結果レスポンスタイムを半減させ、サーバーにだけでなくユーザー体験的にも優しい改修となった。
### 開発例: GraphQLの導入
それまでのjson apiでの開発では、新規開発のたびにアプリ開発チームとの調整が大変でした。apiの内容を決めきらないとアプリ側の開発が始められず、バックエンド開発者にはプレッシャーとなっていました。
そこでGraphQLの導入を決意。graphql-rubyとgraphql-batch gemを導入し、一発目のapiの実装を担当しました。
クライアント側で汎用ライブラリが使えるようになり、型定義の手間が一気に減りました。