🦔

Momento 入門 その5:Momento Topicsを触ってみる

2023/09/07に公開

今までの記事ではMomento Cache を触ってきましたが、もう一つの機能であるMomento Topicsを作成してみます。

Momento Topics とは

Momento TopicsとはいわゆるPub Sub型のメッセージ送信サービスです。
AWSの場合こういうアーキテクチャーを実現するものとしてAmazon SNSがあります。Amazon SNSではあらかじめTopics毎にチャネルを必要しておい、サブスクライバは特定チャネルをサブスクライブすることで、パブリッシャがチャネルに投入したメッセージを受信できるという形態になります。

Momento TopicsはKey Value型の特性を生かし、KeyをTopics/チャネルとしてあらかじめ作成しなくてもメッセージの送受信ができることが特徴です。
これは従来のシナリオに対して、いちいち管理者に連絡しTopics/チャネルを作ってもらわなくても開発者が任意のチャネルをいつでも作成できる、というメリットを生み出します。

早速やってみます

早速やってみます、というより圧倒的に簡単です。
この記事を元にCLI環境を作っておいてください。
ターミナルへ2つのタブからログインしておきます。IDやIPなどは同じで問題ありません。

Subscriber側で以下を実行しておきます。

./momento topic subscribe foo

fooがTopic名です。
このままの状態にしておきながら次はPublisherで以下を実行します。

./momento topic publish foo bar

Subscriber側でbarがほぼリアルタイムで出力されるはずです。

到達性&冪等性について

Pub Subメッセージ基盤や似た動作をするQueue基盤を使う際に課題となるのが到達性や冪等性です。
First-In-First-Out(FIFO型)が保証されているのか、最低一回の配信は保証されるのか(つまり2回以上メッセージが配信される際の冪等性はどうするのか)などアプリケーション側で考えるべきことは多くあります。

次回の記事ではそれを検証しながら記載していきたいと思います。

Discussion