В этой подборке вопросы сгруппированы по формату «System Design», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: backend, api, database.
Бот должен уточнить недостающие параметры, проверить доступность в системе записи и ответить на основе реального расписания. Вопрос о свободном времени ещё не является согласием на бронирование.
Набор определяется контрактом кредитного API: обычно это идентификатор клиента, параметры заявки, аутентификационный контекст и технические идентификаторы запроса. По названию Gateway точную схему не восстановить.
Разделите ETL на обнаружение объектов S3, определение формата, потоковый разбор и запись через соответствующий sink. Повторный запуск не должен дублировать уже обработанные данные.
Ключевое свойство — автономность сервисов вокруг бизнес-возможностей, включая независимое развёртывание. Само по себе общение по сети ещё не делает систему микросервисной.
Типовой поток: склад публикует изменения в Kafka, каталог обновляет модель чтения и кеш Redis, а frontend получает данные через API. Реальная схема и формула популярности зависят от проекта.
Автоматизируйте воспроизводимую поставку артефакта через CI/CD и управление конфигурацией. Docker необязателен: приложение можно запускать как systemd-сервис с версионированными release-каталогами.
При допустимой задержке 5–10 минут самое простое решение — заранее вычислять результат и отдавать готовый кеш или отчётную таблицу. Тяжёлый SQL не должен выполняться на каждый пользовательский запрос.
Победителя определяет атомарное резервирование в общей БД, а не время прихода запроса на разные серверы. TTL не должен освобождать слот, пока возможна неразобранная успешная оплата.
Нужны устойчивое общее ядро, явные точки настройки и расширения, а не ветка кода под каждого клиента. При этом универсальность должна опираться на повторяющиеся требования, а не на абстракции заранее.
Можно сделать outbox append-only и хранить прогресс relay отдельно, но это меняет модель обработки, а не устраняет все затраты. DELETE тоже создаёт MVCC-мусор; иногда удобнее очистка партициями.
Сделайте CRM источником истины для слотов и подтверждённых записей, Telegram — интерфейсом, а Google Sheets — дополнительным источником по явно заданным правилам. Конфликты двух источников нужно разрешать заранее.
Сделайте общий внутренний контракт и отдельные адаптеры страховщиков, а обновление данных запускайте независимо по расписанию каждого источника. Храните время актуальности и версию, не выдавая старые данные за свежие.