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. Разработать архитектуру облачного приложения с масштабируемостью, балансировкой нагрузки и высокой отказоустойчивостью.