Pub/Subモデル(以下pubsub)はMessageQueueモデル(以下MQ)のスーパーセット的な位置付け。
MQが単なるメッセージをenqueue/dequeueするものと見た場合、pubsubはdequeue側にsubscriptionという層を1枚挟んだ形となる。 例えばGoogle cloud pub/subでは以下のような実装となっている。
ここでtopicはMQで言うところのqueue種別を表すようなもの。 Publisherは指定のTopic上にメッセージを送信していく。メッセージはSubscriptionに対して転送され、SubscriverはSubscriptionからメッセージを受信する。
Subscriptionは複数のSubscriberから接続出来る。これによりMQでは通常コンシューマ1台あたりがメッセージを受信した時点で削除されるものが、複数のSubscriberに対して配布可能となる。
またGoogle cloud pub/subではメッセージの保存にGoogle Datastoreが利用され、永続化出来るようになっている。