会社内のチームに対するコーチング・コンサルティングを行われている事業社様にて、新規Webアプリケーションの開発を支援いたしました。自社で構築されている数名の開発チームに参画する形で実装上の問題解決を致しました。
渡されている設計としては以下のようになっていました。
実装上の問題は、複数ユーザ間のゲーム進行の同期にあると見て、私の方で実装の指針を提案させていただきました。
GraphQLと呼ばれるHTTP通信技術を用いて、Subscription(WebSocketによるサーバからクライアントへのデータ配信)を通じて複数ユーザ間のデータ同期を可能にしました。
また、チーム内の全員がゲーム内のプロセスを完了した際には、ゲームを次のステージに進行する処理をトップレベルのコントローラを設置することにより対応し、動作の安定化を図りました。
またデータ処理を可能な限りサーバサイドに移すことにより、重複となるデータ処理を未然にキャンセルし再試行させ、ゲーム進行上の不具合を防ぎました。
バグ報告に対する修正・ゲーム内容の見直しに伴う改修も含めて引き続き対応しています。