Momento TopicsでシームレスなmicroCMSのリアルタイム通知を構築

Hiroshi Morishige

分野: ヘッドレスCMS, お知らせ機能, Pub/Sub, サーバレスアーキテクチャ

ユースケース: Momento Topics

microCMSというSaaS型のヘッドレスCMSを提供しています

どうしてキャッシュ/トピックスが必要だったのか

microCMSでは大量のコンテンツやメディアを管理することができるのですが、今回はその中でまとめてコンテンツやメディアを削除するなどバックグラウンドで大量に処理を行う必要がある部分にて、フロントエンド、バックエンドの連携のためトピックスを利用しました。

実際使用してみて思ったことと、期待通りだったこととは

Pub/Subの仕組みを用意するにはそれなりに工数がかかるイメージがありますが、Momentoを利用すると各言語のSDKがすでに用意されているのでその仕組みがあっという間に構築できました。またSDKのサンプルコードも多く開発体験がとてもよい印象でした。余った工数を仕様の検討や機能の開発自体にまわせることも大きかったです。

Momento Topicsを使用した全体のアーキテクチャ

従来まではフロントエンドからまとまった時間のかかる処理を行う際、数秒ごとに定期的にリクエストを送り、バックエンドの処理状況を確認し続けるという仕組みになっていました。

ただ処理するコンテンツ量によっては数分かかることもあるため、その間ユーザーが別のサイトに移動してしまうと、microCMSの管理画面に戻ったとしても終了の通知を受けることができなくなってしまいます。(処理途中であることもわからない)

トピックスを利用してPub/Sub状態を維持、復元できることで管理画面に戻った際も通知を受け取ることができるようになりました。また同じサービスを利用する別のユーザーにも通知を届けることができるため、長時間の処理が動いていることを別のユーザーも知ることができるようになりました。

本番デプロイまでにかかった時間

他にも大きな機能開発との連携があったため、本番環境への導入には2ヶ月程度かかりました。とはいえPub/Sub機能の検証自体は1週間程度で完了できていたと思います。

Momentoとの将来

今後はトピックスだけでなく、コンテンツ管理にも利用できる永続的なストレージサービスの動向にも期待をしています。

Momento Cacheでチャットアプリケーションのコスト削減とパフォーマンス向上を実現しましょう。今すぐサインアップしてお試しください。

Hiroshi Morishige

フロントエンドエンジニア。Web制作、開発会社を経て現在は株式会社microCMSに在籍。
きっとインターネット老人会に所属しています。国内ではほとんど知られていないCloudflare Developer Challenge 2022のWinner。