System Design Практика

Вопросы:

1. В банковской системе реализовать операцию перевода средств между счетами так, чтобы повторный запрос на перевод с теми же параметрами не списывал деньги дважды, даже если клиент случайно отправил операцию повторно из-за сбоя сети.

2. В REST API для интернет-магазина обеспечить идемпотентность метода обновления информации о товаре (PUT), чтобы многократные запросы с одинаковыми данными не вносили лишних изменений и не приводили к ошибкам.

3. В распределённой системе обработки заказов реализовать механизм идемпотентной обработки сообщений из очереди, чтобы при сбоях и повторной доставке одна и та же заявка на заказ обрабатывалась ровно один раз.

4. В мобильном приложении для социальных сетей обеспечить идемпотентность операции лайка поста, чтобы повторное нажатие кнопки «лайк» с того же устройства не увеличивало количество лайков сверх одного.

5. В инфраструктуре облачного провайдера реализовать идемпотентное создание виртуальной машины через API, чтобы повторные запросы с одинаковыми параметрами не создавали несколько виртуальных машин и не увеличивали затраты.

6. Реализовать банковское приложение, где два пользователя одновременно обновляют баланс счета, избежать потери обновлений.

7. Разработать систему бронирования билетов, предотвратить ситуацию, когда два клиента одновременно резервируют одно и то же место.

8. Создать приложение для редактирования документа несколькими пользователями, правильно обрабатывать одновременное сохранение изменений.

9. Реализовать интернет-магазин с функцией изменения количества товара в корзине несколькими запросами без потери данных.

10. Спроектировать механизм обновления профиля пользователя в многопоточной среде, чтобы избежать перезаписи изменений.

11. Написать многопоточное приложение для подсчета статистики, синхронизировать доступ к общим данным.

12. Создать систему логирования, где несколько потоков одновременно записывают сообщения, предотвратить повреждение лога.

13. Реализовать кэш данных с возможностью параллельного чтения и записи, избежать состояния гонки при обновлении кэша.

14. Разработать приложение для заказов с конкурентным обновлением статуса заказа, обеспечить корректный переход между состояниями.

15. Создать счетчик посещений веб-сайта с несколькими потоками, корректно увеличивающий значение без потери обновлений.

16. Спроектировать систему управления задачами, где несколько пользователей могут одновременно изменять задачу, реализовать стратегию разрешения конфликтов.

17. Реализовать базу данных с механизмом блокировок для предотвращения конфликтующих изменений.

18. Создать систему совместного редактирования текста с обнаружением и разрешением конфликтов при одновременной правке.

19. Разработать приложение для голосования, где параллельные обновления должны корректно обрабатываться без конфликта.

20. Реализовать систему управления заказами, которая корректно обрабатывает параллельные изменения одного и того же заказа.

21. Спроектировать высоконагруженный URL-шортнер с учетом масштабируемости и отказоустойчивости.

22. Разработать архитектуру масштабируемого чата с поддержкой миллионов пользователей и реального времени.

23. Спроектировать систему рекомендаций для интернет-магазина с использованием машинного обучения и масштабируемой архитектуры.

24. Реализовать систему мониторинга приложений с агрегацией метрик и оповещениями о сбоях.

25. Разработать архитектуру микросервисов для электронной коммерции с оркестрацией и межсервисной коммуникацией.

26. Создать систему управления очередями сообщений для распределенного обмена данными между сервисами.

27. Спроектировать отказоустойчивую систему резервного копирования с автоматическим восстановлением данных.

28. Разработать архитектуру распределенного файлового хранилища с учетом масштабируемости и безопасности.

29. Создать дизайн системы потоковой передачи видео с минимальной задержкой и высокой доступностью.

30. Спроектировать систему аутентификации и авторизации с поддержкой нескольких уровней доступа и безопасным хранением данных.

31. Разработать масштабируемую систему аналитики с обработкой больших данных в реальном времени.

32. Создать архитектуру API Gateway для микросервисной системы с управлением нагрузкой и безопасностью.

33. Спроектировать систему управления задачами с приоритетами и распределением нагрузки между рабочими узлами.

34. Разработать архитектуру облачного приложения с масштабируемостью, балансировкой нагрузки и высокой отказоустойчивостью.