【開発裏話】なぜtsuuchi.netの通知は「最速」を実現できるのか
「えっ、もう通知来たの?」 「配信ボタン押した瞬間にスマホ鳴ったんだけど!」
tsuuchi.net(通知アプリ)をご利用の皆様から、よくこんな驚きの声をいただきます。 手前味噌ですが、弊社の通知速度は業界最速クラスを自負しています。
なぜ、そこまで速いのか? そこには、一般的なWebサービスとは一線を画す、執念じみた技術的工夫が詰め込まれているからです。 今回は特別に、その裏側(技術的な秘密)を少しだけお話しします。
目次
- 一般的な通知システムの「限界」
- 秘密1:ポーリングではなく「WebSocket」
- 秘密2:Go言語による超並列処理
- 秘密3:地球を周回させない「エッジコンピューティング」
- まとめ:全ては「ファンの熱量」を冷まさないために
1. 一般的な通知システムの「限界」
多くの通知Botは、「定期的に見に行く」という仕組み(ポーリング)で動いています。 「YouTubeさん、配信始まった?」「まだ」「配信始まった?」「まだ」…これを1分おきや5分おきに繰り返します。
つまり、最大で「確認間隔の時間分(数分)」の遅延が必ず発生します。 これでは「最速」は名乗れません。
2. 秘密1:ポーリングではなく「WebSocket」
tsuuchi.netは、クライアントとサーバーの間をWebSocketという技術で常時接続しています。 これは電話のようなもので、回線が繋がりっぱなしの状態です。
配信者がボタンを押した瞬間、サーバーから**「プッシュ!」という信号が光の速さで全ユーザーに飛びます**。 「見に行く」のではなく「送りつける」ので、タイムラグが理論上ほぼゼロになります。
3. 秘密2:Go言語による超並列処理
数万人に一斉に通知を送るには、サーバーに強烈な負荷がかかります。 そこで採用したのが、Googleが開発したプログラミング言語**「Go(Golang)」**です。
Go言語は「並列処理」が得意で、数万件の処理を「同時」にこなすことができます。 一般的な言語が「1人ずつ順番に」手紙を配るとしたら、Go言語は「数万人の配達員が全員同時に」走り出すようなイメージです。 これにより、1人目と1万人目のタイムラグを極限までなくしています。
4. 秘密3:地球を周回させない「エッジコンピューティング」
サーバーが物理的に遠いと、信号が届くのに時間がかかります。 tsuuchi.netは、CDN(コンテンツデリバリネットワーク)のエッジサーバーを活用し、ユーザーに最も近い場所から通知を配信する構成をとっています。
物理的な距離による遅延すらも、0.1秒単位で削り出しているのです。
5. まとめ:全ては「ファンの熱量」を冷まさないために
たかが通知、されど通知。 私たちがここまで速度にこだわるのは、「配信が始まった瞬間のワクワク感」を最高鮮度で届けたいからです。
「キタ!」とスマホを見て、タップして、配信画面が開く。 その一連の体験がスムーズであればあるほど、ファンの熱量は高まります。
技術の無駄遣いと言われるかもしれませんが、私たちはこれからも**「世界一速い通知屋」**を目指してコードを書き続けます。