Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Distributed Systems: Communication and Transact...

Distributed Systems: Communication and Transactions

Розподілені системи: комунікація та транзакційність без хаосу

Розподілені системи обіцяють масштабування та гнучкість, але разом із цим приносять чимало сюрпризів: від збоїв у комунікації до втрати узгодженості даних.
Чому класичні транзакції не працюють у такій архітектурі і що з цим робити?
На цій доповіді розберемося, як тримати систему під контролем і як уникнути хаосу при побудові розподілених архітектур.

Avatar for Inna Mospan

Inna Mospan

October 28, 2025

Other Decks in Technology

Transcript

  1. Контракти між сервісами та їх комунікація Транзакційність в розподілених системах

    Saga-патерн: види, переваги та недоліки Зміст 4 Висновки 3 2 1
  2. Розробник - може все Більшість розробників - full stack Розробник

    відповідає за всю технічну частину Команди не великі
  3. Прийшов час думати про архітектуру Проєкти стають складніші Працювати з

    тим що є - все складніше, займає більше часу В вакансіях частіше можна побачити frontend та backend розробників, як окремі позиції Команди ростуть Активно зʼявляються позиції архітекторів
  4. Контракти між сервісами REST gRPC Простіша логіка та дебаг Tight

    coupling: якщо один сервіс повільний або падає, це впливає на весь ланцюжок Event-Driven rabbitMQ, Redis, MQTT, Kafka і тд слабке зчеплення, краща масштабованість та відмовостійкість складніша логіка, eventual consistency, важче тестувати і дебажити
  5. Наслідки неузгодженості даних: Ненадійність інформації: Дані можуть бути невірними, що

    впливає на якість прийняття рішень. Зниження ефективності: Неточні дані знижують ефективність та продуктивність. Підвищення витрат: Виправлення помилок та пошук правильної інформації вимагають додаткових витрат. Підрив довіри: Неузгоджені дані можуть пошкодити репутацію та знизити довіру.
  6. Кожен крок - окрема транзакція 1 Успіх - нова подія

    для наступного кроку 2 Інакше - запускається компенсуюча транзакція 3 SAGA
  7. Види SAGA VS Choreography Orchestration Кожен сервіс після закінчення своєї

    транзакції - публікує подію. Інші сервіси підписуються на ці події і реагують. Є центральний оркестратор, який координує кроки, відправляє запити сервісам і отримує відповіді з яких вирішує викликати наступний крок, чи запустити компенсуючі дії.
  8. SAGA Choreography - Плюси Природно підходить для event-driven архітектур Децентралізоване

    управління Висока масштабованість і надійність Простота для малих систем
  9. SAGA Choreography - Мінуси Всі знають про всіх Необхідність чіткого

    планування подій Важко відслідковувати транзакції Ускладнення при зростанні системи
  10. Якщо обираєте SAGA Pattern 2 3 4 Logs & Metrics

    Distributed tracing SAGA UI 1 Idempotency
  11. Якщо обираєте SAGA Pattern 2 3 4 Logs & Metrics

    Distributed tracing SAGA UI 1 Idempotency
  12. Якщо обираєте SAGA Pattern 2 3 4 Logs & Metrics

    Distributed tracing SAGA UI 1 Idempotency
  13. Якщо обираєте SAGA Pattern 2 3 4 Logs & Metrics

    Distributed tracing SAGA UI 1 Idempotency
  14. Висновки Масштабованість додає складності Обирайте тип комунікації свідомо Для складних

    процесів - Saga Спостережуваність - необхідна умова для стабільності 4 2 3 1
  15. The Many Meanings of Event-Driven Architecture • Martin Fowler Event-Driven

    Architecture: магія чи хаос під капотом? microservices.io Мій LinkedIn Залишаймось на звʼязку Корисні посилання Презентація