Publish-subscribe (pub/sub) to wzorzec komunikacji, w którym nadawcy (publisherzy) wysyłają wiadomości do kanału lub tematu, a odbiorcy (subskrybenci) odbierają tylko te tematy, którymi są zainteresowani. Nadawca i odbiorca nie znają się i mogą działać niezależnie.
Czym różni się od Obserwatora?
W wzorcu Obserwator podmiot zna swoich obserwatorów i bezpośrednio ich wywołuje. W pub/sub pomiędzy stronami stoi pośrednik, zwany brokerem lub magistralą zdarzeń, który rozsyła wiadomości. Pozwala to rozdzielić nadawców i odbiorców także w sieci, procesach i czasie.
Gdzie się go używa?
W systemach kolejek i brokerów wiadomości, takich jak RabbitMQ, Kafka i Redis Pub/Sub, w komunikacji mikroserwisów, powiadomieniach w czasie rzeczywistym z użyciem WebSocketów oraz w magistralach zdarzeń wewnątrz frameworków.
Zalety i ryzyka
Luźne powiązanie ułatwia rozbudowę i skalowanie. Trudniejsze staje się śledzenie przepływu wiadomości, zapewnienie kolejności i obsługa utraty komunikatów, co wymaga monitoringu i przemyślanych potwierdzeń.
Powiązane pojęcia
Wszystkie hasła z kategorii Programowanie i wzorce projektowe