ピコもんの開発
「Tagment(旧名称ピコもん)」は Web ページ上にタグを埋め込むことでキャラクターがサイトの案内を行うマーケティングソリューションツールでトークスクリプトを記述することで任意の案内を行うことができるサービス(既に提供終了済み)でした。2013年の Rails 全盛期の中で大量のトラフィックを捌く目的からバックエンドに Node.js を使用し、当時はまだ珍しかった SSR を採用した。管理画面のフロントエンドは AngularJS の双方向バインディングのデバッグのし辛さやパフォーマンスの不安感から Backbone を採用した。本体は配信速度向上のために独自フレームワークや SSR, Uglify を採用した。パイプラインには grunt -> gulp を使用。アクションと呼ばれるトークスクリプトに使用するコードはパフォーマンスを少しでもあげるために実行時に配信した(現在でいう Tree Shaking のようなもの)。
技術スタック
バックエンド: Node.js, Express, MongoDB, Amazon Aurora
フロントエンド: Backborn, jQuery
ユーザ DB 移行
タグが入っているサイトの PV に応じて ユーザID が発行される仕様上 MongoDB に 数千万レコードのユーザとセッションレコードが登録されてしまっていた。 MongoDB はレコード数が増えると急激にパフォーマンスが落ちるため Amazon Aurora に移行するプロジェクトを行った。プロジェクトではユーザ・セッションデータを MongoDB から千件ずつのストリームとして読み出して31並列された子プロセスに引き渡し Aurora に挿入した。バッチ終了後は MongoDB および Aurora のデータ整合検証バッチを走らせて全てのデータ移行が完了したことを確認した。
技術スタック
Node.js