Mentionsy Mentionsy
Better Software Design
Better Software Design

104. Clickbait Events - EDA /Anti/Patterns

28.05.2026 ·30 min 38 s · 7 rozdziałów

Kontynuujemy mini-serię o antywzorcach Event-Driven Architecture - ponownie z Oskarem Dudyczem. Tym razem jednak bierzemy na początek na warsztat puchnące zdarzenia: jedno “uniwersalne” zdarzenie, które próbuje zadowolić wszystkich naraz. Kolejne pole, kolejne ID “na wszelki wypadek”, aż w końcu wysyłamy w świat pół swojej bazy danych. Zupełnie jak w wierszyku o sznurku Jurka - ktoś dorzuci papierek, aż robi się góra śmieci. Jednak to tylko pretekst do tego, aby dotknąć właściwego tematu, czyli podziału między to, co publiczne, a to, co prywatne.

5:34 · Antywzorzec Clickbait Event 1

Już myślałem, że powiesz brutalnie CSV przez FTP. Też można. Też można. Ale nie no, realnie no, ja widziałem w tylu projektach i w tylu zespołach, gdzie ludzie po prostu siedzą i klepią te handlery i wyimaginowane scenariusze, gdzie jest jakiś race condition, bo te dane pochodzą z różnych modułów. No, gdzie jedyną ich potrzebą jest wyświetlenie tego gdzieś na widoku. I to nawet nie podjęcie decyzji, tylko wyświetlenie na widoku. Więc dla mnie to jest po prostu strata czasu, energii i tak dalej. Ale tak, no czasem jest to zasadne i faktycznie przepychanie przez wiadomości, szczególnie jeśli mamy na przykład Kafka, Kafka Connect, to są takie technologie, które są w stanie nam na przykład zsynchronizować dwie różne bazy danych.

22:56 · Zdarzenia publiczne i prywatne 1

To w teorii, dlaczego by nie można było zrobić tak, że mamy te swoje nasze wewnętrzne zdarzenia do obsługi zdarzenia, ale jeżeli na przykład używamy kafki, to zrobić dwa topiki zewnętrzne, czyli taki back-end for front-end, czyli w naszym przypadku, powiedzmy, topics for consumers, czyli wydzielić. To w Rabicie tak samo można zrobić, inną kolejkę. Chodzi o to, że dzielimy sobie, że tu publikujemy zdarzenia, czy też komendy, czy inne wiadomości związane z obsługą przesyłki, więc one nie mają np. informacji o płatności itd., tylko komendy zdarzenia, które służą do komunikacji obsługi wysyłki, a na drugim np. te związane z płatnością.

Pokazano wszystkie 2 dopasowania. Transkrypcja generowana automatycznie i niesprawdzana ręcznie — może zawierać błędy.