← Усі теми

Питання на співбесіді з System Design (Senior) з відповідями

75 запитань для співбесіди з теми System Design (Senior) - з правильними відповідями, поясненнями й посиланнями на документацію.

Пройти цей тест
  1. 1.Що стверджує теорема CAP?
  2. 2.Користувач оновив профіль, перезавантажив сторінку й побачив старі дані. Яку гарантію порушено?
  3. 3.Чим небезпечний вибір ключа шардування «за датою створення»?
  4. 4.Навіщо консистентне хешування під час додавання вузлів кешу?
  5. 5.Навіщо ставити чергу повідомлень між API та обробником важких задач?
  6. 6.Чому споживачі черги з доставкою «at-least-once» мають бути ідемпотентними?
  7. 7.Що таке backpressure?
  8. 8.Чим fan-out on write відрізняється від fan-out on read у стрічці соцмережі?
  9. 9.Як забезпечити правильний порядок повідомлень у чаті?
  10. 10.Які компоненти зазвичай потрібні в архітектурі месенджера?
  11. 11.Як масштабувати WebSocket-сервери горизонтально?
  12. 12.Як реалізувати статус «онлайн» для мільйонів користувачів?
  13. 13.Чим OT відрізняється від CRDT у спільному редагуванні?
  14. 14.Як працює адаптивний стримінг відео (HLS/DASH)?
  15. 15.Як спроєктувати роздачу користувацьких зображень різних розмірів?
  16. 16.Як реалізувати rate limiting, якщо API працює на 20 серверах?
  17. 17.Для чого зручний фільтр Блума?
  18. 18.Як генерувати короткі посилання в сервісі скорочення URL?
  19. 19.Як масштабувати підказки пошуку (typeahead) для мільйонів запитів на секунду?
  20. 20.Які проблеми з'являються під час роботи сервісу в кількох регіонах (active-active)?
  21. 21.Чим небезпечний заголовок Vary: User-Agent або Vary: Cookie для CDN?
  22. 22.Що таке cache stampede і як йому запобігти?
  23. 23.Чим відрізняються стратегії cache-aside, write-through і write-back?
  24. 24.Коли варто рендерити на edge, а коли в регіоні поруч із базою даних?
  25. 25.Які існують способи композиції мікрофронтендів?
  26. 26.Як деплоїти зміну API, не зламавши клієнтів старої версії?
  27. 27.Чому після деплою SPA користувачі отримують ChunkLoadError?
  28. 28.Як метрики, логи й трейси доповнюють одне одного?
  29. 29.Що таке бюджет помилок (error budget)?
  30. 30.Що таке патерн Bulkhead (перегородки)?
  31. 31.Чому важливо дивитися на p99 затримки, а не лише на середнє?
  32. 32.Як поєднати кешування HTML на CDN і персоналізацію (ім'я користувача, кошик)?
  33. 33.Чому успішний редирект зі сторінки оплати не можна вважати підтвердженням оплати?
  34. 34.Як перевірити справжність вхідного вебхука?
  35. 35.Чому пошуковий індекс часто оновлюється асинхронно, а не в тій самій транзакції?
  36. 36.Як атомарно оновити базу даних і надіслати подію в чергу?
  37. 37.Сервіс має витримувати 10 млн активних користувачів на день по 20 запитів. Яке середнє навантаження?
  38. 38.Чим проєктування read-heavy системи відрізняється від write-heavy?
  39. 39.Як побудувати аналітичний дашборд за мільйонами подій, щоб він відкривався швидко?
  40. 40.Як спроєктувати систему сповіщень (email, push, in-app)?
  41. 41.Як віддавати результат важкої операції (експорт звіту на 5 хвилин)?
  42. 42.Як фронтенд може обчислювати feature flags без мерехтіння інтерфейсу?
  43. 43.Що мінімізувати в логах і аналітиці заради приватності?
  44. 44.Чому підписані посилання на приватні файли роблять короткоживучими?
  45. 45.Чим проєктування системи із суворою узгодженістю відрізняється для банківського балансу та лічильника лайків?
  46. 46.Що таке hedged requests і коли вони корисні?
  47. 47.Як забезпечити роботу сайту, якщо впав сервіс рекомендацій?
  48. 48.Як визначити вимоги до зберігання повідомлень чату на 5 років для 1 млн користувачів?
  49. 49.Чим відмовостійкість active-passive відрізняється від active-active?
  50. 50.Чому відповідь API для мобільних клієнтів варто проєктувати з урахуванням довгого життя старих версій?
  51. 51.Чи досяжна доставка повідомлень «рівно один раз» (exactly-once) у розподіленій системі?
  52. 52.Один акаунт знаменитості отримує мільйони записів і перевантажує свою партицію. Що допоможе?
  53. 53.Які є типові варіанти ізоляції орендарів у мультитенантному SaaS?
  54. 54.Яка структура даних робить повнотекстовий пошук швидким?
  55. 55.Як дешево зберігати метрики з мільярдами точок?
  56. 56.Як реалізувати таблицю лідерів гри в реальному часі?
  57. 57.Що дає ID у стилі Snowflake порівняно з випадковим UUIDv4?
  58. 58.Чому в реплікованому сховищі з N=3 обирають R=2 і W=2?
  59. 59.Чому двофазний коміт рідко використовують між мікросервісами?
  60. 60.Що таке load shedding (скидання навантаження)?
  61. 61.Чому в serverless-функцій бувають сплески затримки після простою?
  62. 62.Після падіння WebSocket-сервера всі клієнти перепідключаються одночасно й знову його валять. Як цьому запобігти?
  63. 63.Чому платіжні системи використовують незмінний журнал подвійного запису замість змінюваної колонки balance?
  64. 64.Як виконати запит на «право бути забутим», якщо персональні дані лежать у незмінних логах подій і бекапах?
  65. 65.Як перейменувати колонку в базі без простою?
  66. 66.Що означають RPO і RTO в аварійному відновленні?
  67. 67.Що таке chaos engineering?
  68. 68.Як вимоги до локалізації даних (наприклад, дані ЄС лишаються в ЄС) впливають на архітектуру?
  69. 69.1 млн переглядів відео на день по 50 МБ - яка приблизно потрібна середня вихідна пропускна здатність?
  70. 70.Сервіс обробляє 1000 запитів/с із середньою затримкою 200 мс. Скільки запитів у середньому перебуває в обробці одночасно?
  71. 71.Навіщо розподіленому блокуванню fencing-токени?
  72. 72.Для чого використовується Change Data Capture (CDC)?
  73. 73.Дашборд виконує важку агрегацію під час кожного завантаження сторінки. Яке типове рішення?
  74. 74.Як розвивати схеми подій чи повідомлень, не ламаючи споживачів?
  75. 75.Чому прив'язка WebSocket-користувачів до сервера ускладнює деплой?