"매 publisher 매 subscribers 매 모름 — 매 topic / channel 매 통해 매 decoupled broadcast". 1987 ISIS Toolkit 매 origin, 매 today Kafka / Redis Pub/Sub / NATS / Google Pub/Sub / AWS SNS 매 ubiquitous backbone.
매 핵심
매 model variants
Topic-based: 매 logical channel name (e.g. orders.created).
Content-based: 매 message attributes 매 filter — 매 RabbitMQ headers exchange.
Type-based: 매 message class hierarchy.
Hybrid: 매 topic + filter (NATS subject wildcards orders.*.created).
매 delivery semantics
At-most-once: fire-and-forget (Redis Pub/Sub).
At-least-once: ack required (Kafka, SQS).
Exactly-once: 매 idempotent + transactional (Kafka EOS, Pulsar).
언제: 매 schema design (AsyncAPI generation), 매 consumer code scaffolding, 매 dead-letter analysis.
언제 X: 매 broker selection 매 trust 의 X — workload metrics 직접 측정.
❌ 안티패턴
Sync pub-sub: 매 publisher block on slow subscriber — 매 async / queue 사용.
No schema: 매 consumer breakage — Avro/Protobuf + registry 필수.
Topic explosion: 매 user-per-topic — 매 millions of topics, broker 죽음. 매 partition / filter 사용.
Duplicate semantics: 매 at-least-once 인데 매 idempotency 없음 — duplicate processing.
🧪 검증 / 중복
Verified (Eugster et al. — "The Many Faces of Publish/Subscribe" 2003; Kafka docs).