arc-refer

Архитектурные и инженерные референсы

Готовые подборки

Каталог30

A-01Схема системыModular monolith

Один деплой, понятные модули внутри. Хорошая отправная точка для продукта с общей командой и общими данными.

A-02Схема системыHexagonal architecture

Правила продукта отделены от интерфейса, базы и внешних сервисов. Внешние детали подключаются через адаптеры.

A-03Схема системыPipes and filters

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

A-04Схема системыLocal-first software

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

A-05Схема системыEvent-driven architecture

Компонент сообщает о случившемся, а подписчики реагируют независимо. Подходит, когда одно событие запускает несколько процессов.

A-06Схема системыStatic delivery + CMS

Редактор управляет материалами, а читатель получает готовые или закешированные страницы и файлы через CDN.

P-01ПринципYAGNI · simple design

Каждый компонент решает существующую задачу. Запас на выдуманное будущее не должен усложнять сегодняшний продукт.

P-02ПринципInformation hiding · bounded context

Держи вместе то, что меняется вместе. Скрывай решения, которые остальной системе знать не нужно.

P-03ПринципData invariants · constraints

Важное правило должно выдерживать параллельные запросы. Проверка в интерфейсе не заменяет гарантию в хранилище.

P-04ПринципAPI contracts · boundary validation

Вход, выход, ошибки и совместимость описаны явно. Чужие данные становятся доверенными только после проверки.

P-05ПринципLeast privilege · deny by default

Пользователь и компонент получают только нужные им действия над нужными данными. Отсутствие разрешения означает отказ.

P-06ПринципFeedback loop

Система наблюдает результат своих действий. Автоматическое решение имеет сигнал, цель и ограничения реакции.

R-01ПаттернIdempotency

Повтор одного намерения не создаёт второй платёж, заказ или другой лишний эффект.

R-02ПаттернTimeout · backoff · jitter

Не жди бесконечно и не добивай упавший сервис повторами. У запроса есть общий бюджет времени.

R-03ПаттернCircuit breaker

После серии сбоев система временно перестаёт вызывать зависимость и осторожно проверяет её восстановление.

R-04ПаттернBulkhead

Один тяжёлый или сломанный сценарий не забирает все подключения, память и рабочие слоты.

R-05ПаттернCache-aside

Приложение сначала ищет готовое значение в кеше, а при промахе читает источник и заполняет кеш.

R-06ПаттернTransactional outbox

Изменение записи и намерение отправить событие сохраняются вместе. Отдельный обработчик доставляет событие позже.

R-07ПаттернCQRS

Команды защищают правила изменения, а запросы отдают удобную модель чтения. Разделение начинается в коде, без обязательных двух БД.

R-08ПаттернEvent Sourcing

Источником истины служит журнал принятых событий. Текущее состояние получается их последовательным применением.

R-09ПаттернSaga

Несколько локальных транзакций составляют длинную операцию. При частичном провале выполняются заранее определённые компенсации.

R-10ПаттернBackpressure · bounded queue

Система принимает работу с учётом своей ёмкости. Медленный потребитель не превращает очередь в бесконечное хранилище.

R-11ПаттернStrangler Fig

Новая реализация перехватывает отдельные возможности старой. Переезд проходит небольшими проверяемыми шагами.

R-12ПаттернValet key · signed upload

Приложение разрешает ограниченную операцию, а большой файл передаётся прямо в объектное хранилище.

E-01ПрактикаArchitecture Decision Record · ADR

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

E-02ПрактикаC4 model

Сначала покажи людей и соседние системы, затем приложения и хранилища. Углубляй схему только там, где это помогает.

E-03ПрактикаSLI · SLO · error budget

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

E-04ПрактикаObservability

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

E-05ПрактикаBackup · restore · RPO / RTO

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

E-06ПрактикаExpand and contract · parallel change

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

arc-refer / djnagibator
О справочнике

Практический пересказ источников. Перед применением учитывай условия и компромиссы. Подборка копируется целиком в Markdown и сохраняется в этом браузере.