Wzorzec projektowy Transactional Outbox

Wzorzec projektowy Transactional Outbox
migatotech
  • Rejestracja:ponad rok
  • Ostatnio:około rok
  • Postów:12
2

Cześć Wszyscy! 👋🌟

Ostatnio dużo słyszy się o wyzwaniach związanych z niezawodnością i komunikacją między mikroserwisami. Wiem, że dla wielu z Was, tak jak i dla mnie, jest to temat nie tylko ważny, ale i pełen niespodzianek. 🌐💡

Właśnie dlatego postanowiłem pogłębić temat i podzielić się z Wami swoimi odkryciami dotyczącymi wzorca "transactional outbox". 📬✨

🔗 Znalazłem rozwiązanie, które może znacząco poprawić niezawodność naszych systemów. To nie tylko teoria, ale praktyczne podejście, które możemy zaimplementować w naszych projektach. W moim najnowszym wideo na YouTube szczegółowo omawiam:

Jak "transactional outbox" zapewnia atomowość transakcji i niezawodność komunikacji. 📦🔒
Praktyczne wskazówki dotyczące implementacji wzorca w różnych środowiskach. 🛠️
Rozwiązania typowych problemów i wyzwań, które możesz napotkać podczas pracy z tym wzorcem. 🚀

Uważam, że ta wiedza może być dla Was niezwykle cenna, niezależnie od tego, czy dopiero zaczynacie swoją przygodę z mikroserwisami, czy szukacie sposobów na optymalizację istniejących systemów. 📘💼

Zapraszam Was serdecznie do obejrzenia wideo i podzielenia się swoimi doświadczeniami w komentarzach. Wasze opinie i spostrzeżenia są dla mnie niezwykle ważne! 💬🌟

Oto link do wideo: Kliknij

Jeśli znajdziecie wartość w treści, które tworzę, zachęcam do subskrypcji kanału – będzie mi niezmiernie miło. 🙏❤️

Czekam na Wasze opinie i sugestie! Do zobaczenia w sekcji komentarzy! 💬🎉

Grzyboo
Cześć, to nie forum dla upośledzonych. Nie potrzeba 2 emotek na końcu każdego zdania 🙊 🤣💩😂
somekind
Taka treść bardziej pasuje na mikroblog (Mikroblogi) niż forum.
SE
  • Rejestracja:około 6 lat
  • Ostatnio:około 4 godziny
  • Postów:321
1

Rozwlekles na 10 minut informacje, ktore byly do przekazania w polowe tego czasu jak nie krocej. Wszystko mowione jednym tonem i tempem, 70 letni wykladowcy na polibudzie ciekawiej przekazuja wiedze. Do tego ten poczatek polegajacy na klepaniu formulki.

Wisienka na torcie bylo omawianie "minusu" outboxa polegajacego na "nadmiarowej tabeli". To nie ma zadnego sensu, bo celem jest przeciez spojnosc danych, wiec pewnego rodzaju "overhead" zawsze musi wystapic.

Niestety nie urzeklo mnie to ani merytorycznie, ani pod wzgledem formy :(.

edit: Do tego nawet nie wspomniales (chyba, ze przegapilem za co przepraszam), ze outbox zapewnia AT LEAST once delivery co jest bardzo wazne w kontekscie przetwarzania danych.

edytowany 2x, ostatnio: Seken
Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:około 5 godzin
  • Lokalizacja:Koszalin
  • Postów:10094
1

Ja od siebie powiem tyle, że w 99% przypadków tam gdzie mikroserwisy są wprowadzane - to w ogóle nie są potrzebne. Ludzie jest wprowadzają bo jest hype.

SE
  • Rejestracja:około 6 lat
  • Ostatnio:około 4 godziny
  • Postów:321
1

Jednym z pomyslow autora bylo to zeby dwa serwisy (sklep i platnosci) komunikowaly sie przez wspolna tabele w bazie. Takze no, nic wiecej chyba dodawac nie trzeba :P

migatotech
  • Rejestracja:ponad rok
  • Ostatnio:około rok
  • Postów:12
0

Niestety, ale nie zrozumiałeś idei tego wzorca. Te dwa serwisy nie komunikują się w żadnym razie za pośrednictwem jednej tabeli, to by przecież nie miało sensu. Do tabeli zapisujesz eventy, po to żeby w ramach jednej lokalnej transakcji wykonać operacje, co gwarantuje ci atomiczną operację.

Odnośnie opinii, że mikroserwisy są niepotrzebne w 99% przypadków to niestety ale też nie mogę się z tym zgodzić. Jest to wzorzec, którzy jest faktycznie popularny, jest drogi w utrzymaniu, ale jest on dedykowany dla dużych rozwiązań, które zakładają potrzebę skalowania.

SE
  • Rejestracja:około 6 lat
  • Ostatnio:około 4 godziny
  • Postów:321
1

@migatotech: wzorzec rozumiem doskonale, ponieważ w pracy cały system nad którym pracuję jest oparty na zdarzeniach :).
Odnoszę się do stwierdzenia z 5:30 w nagraniu. Sugerujesz żeby serwis płatności odpytywal bazę danych serwisu sklepu. Co jest dosłownie komunikacja za pomocą bazy danych, bo flow wtedy jest takie:
Sklep - > baza - > płatności.
Powiem więcej, jest to jeden z antywzorcow w architekturze mikroserwisow, ponieważ każdy z nich powinien mieć własną bazę. Serwisy te z definicji powinny cechowac się wysoką spójnością i niskim sprzężeniem. Jeżeli obydwa serwisy muszą korzystać ze wspólnej tabeli to tworzysz niepotrzebne sprzężenie i na 99% źle podzieliłeś system na mikroseriwsy.

WeiXiao
Powiem więcej, jest to jeden z antywzorcow w architekturze mikroserwisow, ponieważ każdy z nich powinien mieć własną bazę. czy jeżeli masz taki system: app1 (frontend, 2 instancje (druga standby), zapisuje taski do policzenia), app2 (wykonuje obliczenia, 50 instancji, wystawia status przetwarzania taska) - czy mamy tutaj mikroserwisy czy nie?
migatotech
  • Rejestracja:ponad rok
  • Ostatnio:około rok
  • Postów:12
1

Masz rację. Dziękuję, że obejrzałeś ten film tak dokładnie, zauważyłeś coś czego nawet nie byłem świadom, że powiedziałem.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.