TGViewer
Devs Hive Devs Hive @devshive · 1.41K subscribers
Post #97 660
Всі пишуть і говорять про ACID, але дуже мало людей знають про BASE. Треба розуміти, що ACID - це локальні концепції, які працюють в рамках однієї бази даних, а BASE описує узгодженість даних між сервісами в розподіленій системі.

BA - Basically Available

Система намагається залишатися доступною навіть тоді, коли частина сервісів або інфраструктури має проблеми. Є багато способів забезпечити BA, наприклад Retry with Backoff, Circuit Breaker, Fallback, DLQ і так далі.

S - Soft State

Стан системи може бути тимчасовим, проміжним або не повністю синхронізованим, навіть якщо користувач прямо нічого не змінює в цей момент.

Так як здебільшого комунікація між сервісами є асинхронною, наприклад через Message Brokers, запит користувача може мати багато етапів. І кожен з цих етапів буде мати свій проміжний State.

Якщо хочете дослідити це глибше, то розберіть Saga Pattern. Як на мене - це найбільш наглядний приклад S.

E - Eventual Consistency

Узгодження даних відбувається, але не обовʼязково миттєво. Наприклад, користувач оплатив замовлення. Payment Service вже знає, що оплата успішна, але Order Service ще не оновив статус замовлення, бо чекає подію з черги.
  • ❤ 5
  • 👍 4
More from @devshive
  1. Oct 7, 2026Post #289
  2. Oct 7, 2026Post #288
  3. Oct 6, 2026Цікаве оновлення в Nest.js 🔥 Вони випиляли Axios з HTTP клієнта і тепер використовують na…
  4. Oct 6, 2026Ще одне практичне застосування Jev - jevgrep 🤯☕️ Це інструмент для пошуку потрібного коду…
  5. Oct 5, 2026Post #285
  6. Oct 4, 2026Дуже багато відповіли, що Promise виконає обчислення в окремому потоці 🚬 Треба робити від…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →