📄️ System Design. Обзор
System Design (системный дизайн) — процесс проектирования архитектуры системы
🗃️ Авторизация и аутентификация
3 элемента
📄️ CAP-теорема
CAP-теорема
📄️ Sync vs Async: синхронное и асинхронное взаимодействие
Синхронное взаимодействие
📄️ GRASP: краткий обзор
Проектирование ПО начинается с определения ар хитектуры высокого уровня (HLA - High Level Architecture). В HLA надо определить объекты или процессы, для чего создаём приложение. Существуют подходы:
📄️ Service Mesh
Service Mesh — архитектурный слой, управляющий сетевым взаимодействием между сервисами в распределённых системах. Каждый сервис взаимодействует с другими через прокси (sidecar), который обрабатывает весь трафик между сервисами.
📄️ SOLID
SOLID — набор принципов проектирования объектно-ориентированных систем.
📄️ Что нужно знать про асинхронные интеграции
Асинхронные интеграции
📄️ Contract First vs Code First: что выбрать
Существует два подхода к проектированию API.
📄️ BASE
BASE (Basically Available, Soft state, Eventually consistent) — подход к проектированию распределённых систем
📄️ Фильтр Блума
Фильтр Блума — структура данных, которая помогает быстро проверить, может ли элемент находится в наборе данных или точно его там нет. Используется, когда проверка наличия элемента должна быть быстрой, а использование памяти минимальным.
📄️ Cookie-файлы
Cookie — небольшие данные, которые сайт сохраняет в браузере пользователя и использует при последующих запросах.
📄️ Идемпотентность в распределённых системах
Идемпотентность — свойство операции, которое гарантирует, что повторное выполнение одной и той же операции приведёт к такому же результату, как и первое выполнение.
📄️ Гонка событий (Race Condition)
Гонка событий — ситуация, при которой результат работы системы зависит от порядка выполнения операций. Если несколько процессов одновременно работают с одним состоянием, итог может быть непредсказуемым.
🗃️ Кэширование — разбор по полочкам
2 элемента
📄️ Согласованность данных
Согласованность (consistency) — состояние, когда все пользователи и процессы видят одни и те же данные при чтении. Согласованность не равна целостности (integrity)