Już dostępny

Program Szkoleniowy Java Developer dostępny 🔥💪 tylko TERAZ za 1299 zł  Sprawdź szczegóły i agendę

Zakres

Monitoring • Apache Kafka • Clean Code Testowanie • Hibernate • Systemy kolejkowe Sprawdź szczegóły i agendę

Zakres

14 modułów  /  ponad 40h nagrań  /  230 lekcji  /  dożywotni dostęp  /  Sprawdź szczegóły i agendę

The Outbox Pattern – Komunikacja z zewnętrznymi systemami w ramach transakcji

The Outbox Pattern – Komunikacja z zewnętrznymi systemami w ramach transakcji

Często w ramach przetwarzania logiki biznesowej, oprócz modyfikacji różnych danych objętej transakcją pojawia się potrzeba wymiany danych lub komunikacji z zewnętrznymi systemami. Przykładem jest serwer mailowy, inny serwis, system kolejkowy. Wykonując operację z efektem ubocznym w transakcji, mogą wystąpić dwa potencjalne problemy:

  • Możesz nie mieć wpływu na działanie tych systemów. Na przykład serwer pocztowy nie odpowiada, pojawia się chwilowy zanik sieci, albo bardzo wolno odpowiada).
  • Wykonanie efektu ubocznego i wycofanie transakcji biznesowej. Nie można już odwrócić efektu uczonego (np. nie można wycofać już wysłanego maila).

Jak można sobie z tym poradzić? W tym wpisie opiszę wzorzec The Outbox Pattern.

Pula połączeń i źródło danych

Pula połączeń i źródło danych

Tworząc systemy, które wymieniają dane z bazą danych, chcesz, aby komunikacja była niezawodna.
Możesz wykonywać operacje, które mogą być krótkie, ale za to częste, a może będziesz wykonywał takie, które są bardzo długie.
Operacje są wykonywane w ramach nawiązanego wcześniej połączenia do bazy.
Użytkowników systemu przeważnie jest wielu, a ich sesje powinny być niezależne.

W pewnym momencie może się zdarzyć, że użytkownik nie będzie mógł wykonać jakiejś operacji,
ponieważ baza danych odrzuci kolejne połączenie ze względu na jakiś limit.

Ale przez odpowiednią konfigurację możesz zoptymalizować szybkość działania Systemu w zakresie dostępu do nawiązanego
połączenia do bazy danych.