PUBLIC
CLOUDパブサブ6 MIN READ

TERM 026

Pub / Sub

発行側と購読側を分離して、イベントを配る

Publish / Subscribeは、PublisherがTopicへメッセージを発行し、複数のSubscriberがそれぞれ受け取る通信パターンです。送り手は受け手の数や場所を知る必要がありません。

01PUBLISHイベントを発行
02FAN OUT購読ごとに配る
03CONSUME独立して処理
OVERVIEW

送信側と受信側を分離してメッセージを配る方式の全体像。

CONTENTSこの記事の目次

QUICK OVERVIEW

30秒でつかむ

01TOPIC

発行先の名前

Publisherが受け手を知らずにイベントを送る接点です。

02SUBSCRIPTION

購読ごとの状態

配送位置、再試行、保持期間を用途別に管理します。

03DELIVERY

配送保証

少なくとも一回などの性質を理解し、受け手を冪等にします。

01 — DEFINITION

Pub / Subとは
何か

Publish / Subscribeは、PublisherがTopicへメッセージを発行し、複数のSubscriberがそれぞれ受け取る通信パターンです。送り手は受け手の数や場所を知る必要がありません。

02 — HOW IT WORKS

仕組みを
3段階で見る

細部へ入る前に、入力から結果までの役割を順番に捉えます。

INPUTPROCESSOUTPUT
01PUBLISH

イベントを発行

発生した事実をTopicへメッセージとして送る。

02FAN OUT

購読ごとに配る

サービスが各Subscriptionへ配送対象を分ける。

03CONSUME

独立して処理

各Subscriberが自分の速度と再試行方針で受け取る。

PROCESS

Pub / Subを理解するときの、最小の処理単位です。

03 — ESSENTIALS

押さえるべき
3つの要点

名前だけでなく、この3点の関係まで理解すると実装へつなげやすくなります。

01TOPIC

発行先の名前

Publisherが受け手を知らずにイベントを送る接点です。

02SUBSCRIPTION

購読ごとの状態

配送位置、再試行、保持期間を用途別に管理します。

03DELIVERY

配送保証

少なくとも一回などの性質を理解し、受け手を冪等にします。

04 — REAL WORLD EXAMPLE

注文確定イベントを複数サービスへ配る

在庫、メール、分析が同じ注文確定を別々に利用します。

SCENARIO / PUB / SUBSTEP BY STEP
  1. 01

    注文サービスがorder.createdを発行する

  2. 02

    3つのSubscriptionへイベントを配る

  3. 03

    各サービスが独立して処理・確認する

RESULT注文サービスを変更せず、後から新しい購読処理を追加できます。

05 — WATCH OUT

理解するときの
注意点

便利な仕組みほど、守備範囲と失敗の前提を明確にします。

01

順序を暗黙に期待しない

必要なら順序キーを使うか、データ側の版で新旧を判断します。

02

イベント契約を管理する

既存Subscriberを壊さないよう、項目追加と版管理を計画します。

IN ONE SENTENCE

Pub / Subとは?

送信側と受信側を分離してメッセージを配る方式

KEEP EXPLORING

CLOUDMessage Queue掲載中WEBWebhook掲載中CLOUDServerless掲載中